У меня есть простой физический движок, который решает столкновения, просто исправляя положение перекрывающихся тел (пока просто кругов), а не просто изменяя скорость или применяя импульс. Скорость изменяется только после того, как воздействия уже разрешены, или во время части интеграции.
У меня была проблема, что в кучах объектов верхние объекты оказывают слишком большое давление (это существует неявно, в алгоритме нет моделирования давления) на объекты в нижней части кучи, что приводит к их проталкиванию через этажи, и т.п.
Я хотел исправить это, отсортировав объекты по их y-координате, чтобы столкновения разрешались снизу вверх. Но теперь, движок показывает странное поведение высовывания для объектов, которые на самом деле должны быть в состоянии покоя (см. Рисунок)
Не просто предоставив вам исходный код - что бы это могло быть?