2013-02-17 2 views
1

Каким будет лучший способ определить, что перекрестье нацелилось на цель round? Я попытался добавить небольшой круг в середину перекрестия и обнаружить, когда этот круг и цель сталкиваются. Но я не могу заставить его работать.Как обнаружить перекрывающиеся объекты в Corona?

Я попытался с помощью координат x и y цели с некоторой удачей, но было бы гораздо лучше, чтобы обнаруживать, когда перекрестие «круг» и круглая цель перекрываются, а когда они не.

Я пробовал это для перекрытия изображений: http://developer.coronalabs.com/code/flashs-hittestobject-emulated-using-contentbounds, но это не признает круглые формы, только прямоугольники.

ответ

3

Перекрестье находится на объекте, если расстояние от x, y перекрестия до центра объекта меньше или равно радиусу объекта. Пифагор - ваш друг. Проверьте это в событии enterFrame.

Для этого, кстати, вам не нужно вычислять квадратный корень. Просто вычислите ((x1-x2)*(x1-x2)) + ((y1-y2)*(y1-y2)) каждый раз через enterFrame и сравните его с квадратом радиуса объекта, который будет постоянным и поэтому может быть рассчитан только один раз.

+0

Спасибо! Я нашел это при поиске Pythagoras http://www.isk.kth.se/~johanseg/files/prgprj/lesson8.pdf Мне просто нужно перевести его в Lua;) – user1373293

+0

Я думаю, что это ответ. Thanx вам JeffK для указания направления;) http://www.gamefromscratch.com/post/2012/12/12/GameDev-math-recipes-Collision-detection-using-bounding-circles.aspx – user1373293

1

Отметьте это сообщение в блоге о нефизических столкновениях. В нем рассматриваются два метода (перекрытие ящиков и радиус окружности). Я использую их в нескольких приложениях, где мне не нужна физика.

http://omnigeek.robmiracle.com/2011/12/14/collision-detection-without-physics/

Смежные вопросы