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