Как проверить, касаются ли две картинки друг друга? - PullRequest
1 голос
/ 16 марта 2011


Я пишу игру, в которой у пользователя есть космический корабль, и мне нужно "убить" некоторых энзимов, которые попытаются убить его обратно.
У меня есть "Texture 2d" для космического корабля пользователяизображение, изображение пули и изображение врага.
Хотелось бы знать, как после того, как пользователь выстрелил пулю в врага, как я могу проверить, что пуля ранит врага?
Другими словами - чтофункция проверяет, что одно изображение «покрывает» (даже частично) другое?

Спасибо!:-)

Ответы [ 3 ]

1 голос
/ 17 марта 2011

Как правило, вам нужно определить, когда два непрозрачных пикселя перекрываются, но для предотвращения ненужных вычислений сначала проверьте, не перекрывается ли ограничивающая рамка для вашего корабля и кораблей противника (поскольку пиксели не будут перекрываться, еслиограничивающих рамок нет).

Riemers.net имеет хороший учебник.Вот хороший пример проекта по обнаружению столкновений на пиксель из концентратора приложения.

1 голос
/ 16 марта 2011

Пожалуйста, загляните в тему "Обнаружение столкновений 2D". Поскольку вы используете XNA, следующий сайт должен дать вам хорошее начало: http://www.progware.org/Blog/post/XNA-2D-Basic-Collision-Detection.aspx

0 голосов
/ 16 марта 2011

Мне неизвестно о каких-либо ранее существующих функциях API, которые делают это, но реализация этого самостоятельно будет хорошим упражнением.

Вы должны знать координаты x / y каждого источника вашей фотографии. Вы также должны знать размеры каждой картинки.

Вы можете вычислить ограничивающую рамку изображения и определить, существуют ли какие-либо общие точки.

...