Я бы сделал класс под названием CollisionManager. Таким образом, вы можете кодировать все свои столкновения в этом классе и использовать их в своем классе Game. Вы можете в принципе назвать это тем, что хотите, поскольку это личное предпочтение. Что бы вы ни назвали.
Пример обнаружения столкновения можно найти здесь: example. Кредит принадлежит писателю этой статьи, хотя и не я.
Еще больше ресурсов можно найти на странице App Hub. Здесь вы найдете гораздо больше информации о XNA, а не только о столкновениях.
Надеюсь, это помогло!
Edit:
В основном у вас есть класс CollissionManager, который имеет все функции, необходимые для вашей игры относительно столкновений. Например, вы спросили насчет весла и шара. Таким образом, вы можете написать функцию с параметром Paddle и Ball as. Затем вы можете проверить эту функцию, если они сталкиваются.
protected boolean PaddleBallCollision(Rectangle paddle, Rectangle ball)
{
if (paddle.Intersects(ball)) return paddleHit= true;
}
В классе игры вы можете просто сделать следующее:
using projectname.CollisionManager;
И в Update (я думаю, по крайней мере, это был год, так как я использовал XNA), вы можете проверить, если они сталкиваются с помощью вызов вашей функции.
boolean paddleHit = CollisionManager.PaddleBallCollision(paddle,ball)
if (paddleHit == true)
{
//TODO when hit
}
Что-то вроде этого верю. Поскольку шар круглый, Прямоугольник не был бы лучшим для него, но я не могу сказать, что это идеальная вещь с моей головы. Как я уже сказал, прошло какое-то время, так как я использовал это, но это должно дать вам общее представление!
Я бы определил, в какой области виджета будет происходить столкновение в классе виджетов. Затем я проверил бы на столкновение внутри кода, который перемещает игрока. Таким образом, у вас могут быть разные виджеты, которые будут иметь разные области конфликтов. –
@ Ramhound Я действительно не понял, что вы сказали, может быть, это из-за моего плохого английского языка, но позвольте мне объяснить вам, что я прошу в любом случае: Где я могу проверить столкновение. –
@ Ramhound Если мне нужно проверить столкновение между мячом и игроком, в каком классе я должен реализовать код? и как? –