Прежде всего, мой вопрос на самом деле не относится к C # или XNA, но в моих примерах кода они будут использоваться.
В настоящее время я пытаюсь создать клон Pong, и у меня возникла проблема с обнаружением столкновений.
Каждый объект в основном имеет определенную скорость (которая является Vector2), Position (Vector2, также) и Speed (просто поплавок). При каждом вызове объекта Update () позиция изменяется следующим образом:
Velocity.Normalize();
Position += Velocity * Speed;
Сначала я только проверил, было ли в настоящее время столкновение между двумя объектами, с помощью простого вызова Intersects () из прямоугольников объектов. Я быстро понял, что не могу только проверить, в данный момент сталкивается ли объект с другим, а скорее, если объект столкнулся с объектом на своем пути. Только проверка того, сталкиваются ли в данный момент два объекта, заставляла мяч проходить через ракетку, когда скорость была слишком высокой.
Я пробовал разные способы решения проблемы, но, похоже, ни один из них не помог. Мне нужен только способ проверить, столкнулись ли два объекта на своем пути, и если они столкнулись, было ли это горизонтально, вертикально или обоими (чтобы соответственно изменить скорость мяча).
Мне не обязательно сразу нужно решение, может быть, это просто основная идея того, как это реализовать, и я сам запрограммирую.
Спасибо за ваше время.