Я реализую небольшую игру, и у меня возникают проблемы с правильной работой физики. В этой игре есть один шар (круг, который перемещается от кадра к кадру и может менять радиус) и несколько стен (отрезки линий, которые также меняются и перемещаются от кадра к кадру). Я могу правильно определять столкновения, и заставить мяч отскакивать в правильном направлении не проблема.
Трудности возникают в ситуациях, когда мяч пересекает линию в одном кадре, затем снова пересекает ее в следующем кадре, вызывая двойной отскок. Я мог бы переместить мяч обратно по нормали к линии, пока он не окажется в допустимом положении, но это вызывает действительно странное поведение, когда рассматриваемая линия ударяется вдоль ее оси (представьте, что мяч для пинг-понга падает на вертикальную зубочистку и внезапно смещаясь в сторону так, чтобы она оказалась на одной стороне зубочистки...). Есть также несколько проблем, когда мяч пересекает более одной линии в данном кадре (представьте, что четыре линии вместе образуют прямоугольник, а мяч пересекает угол указанного прямоугольника) — в каком направлении он должен отскакивать? В каком направлении он должен смещаться?
На самом деле у меня нет конкретного вопроса, но я ищу советы или несколько полезных руководств. Все 2D, которые мне пока удалось найти, покрывают только пересечения прямоугольников.
Я использую XNA, если это имеет значение.
Спасибо,
Кэмерон.