Предыдущая позиция обычно не работает лучше всего при работе с несколькими, потому что даже «предыдущая позиция» может стать недействительной.
Вместо этого вы можете рассмотреть толкание объекта с пути сталкивающегося объекта.
Эта статья на OpenTK, которая не основана на XNA, но чертовски похожа, ее легко адаптировать:
http://www.opentk.com/node/869
Требуется минимальный перевод, необходимый для того, чтобы вытолкнуть AABB из пути другого AABB. Это должно быть сделано за несколько проходов, чтобы убедиться, что никакие два объекта не сталкиваются. Однако, технически, если вы уже сделали Player, например, вам не нужно проверять врагов против игрока. Вместо этого вы можете обрабатывать это более обобщенно, используя алгоритм, который обрабатывает все ваши AABB, которые необходимо сравнить, и знает, какие из них уже сравнивались. Эта часть может прийти в стадии оптимизации.
Будьте внимательны к порядку; это где ваш контроль приоритета столкновений вступает в игру. Когда AABB вашего игрока сталкивается с другим, вы бы предпочли, чтобы ваш игрок получил «толчок» ПЕРВЫМ или противник? Эти детали могут зависеть от вашей реализации.