Проблема может быть вызвана несколькими причинами.
Примечательно, что если мяч может перемещаться более чем на один пиксель за «тик» или «кадр», он может пересекать весло более чем на несколько пикселей.время обнаружения столкновения.
Затем вы отскакиваете от мяча в обратном направлении, изменяя его скорость, но в зависимости от нового угла может потребоваться несколько кадров для того, чтобы шар полностью покинул весло.Итак, на следующем тике он все еще пересекается, и вы снова изменяете скорость .Странное появление этого вполне может привести к тому, что мяч в конце концов покинет весло на другой стороне и будет лететь прямо сквозь него.
Возможно, вы захотите поставить «не сталкивайтесь дляфлаг «while» указывает на эту комбинацию мяча с мячом, когда пересечение впервые обнаружено.
В качестве связанной проблемы, если мяч движется достаточно быстро (особенно, когда его x
-компонент самый высокий, например, когдамяч движется почти полностью горизонтально, так что весла меньше, чтобы он мог его пройти), на самом деле может не быть рам, где мяч физически пересекает весло.
Все это зависит от вашегокод, который мы не можем увидеть.Надеюсь, что вышеизложенное должно дать вам некоторые идеи.