2010-12-04 2 views
2

Хорошо, так что лучший способ обнаружить столкновения в android, так как единственные примеры, которые я могу найти на нем, все это позволяет найти, когда два объекта находятся непосредственно друг над другом. лично я думал об использовании ограничивающих прямоугольников, но даже о том, что я не знаю, как это сделать, и тогда я все еще хочу что-то немного более важное (за пиксель?)Обнаружение столкновений в Android

+0

Box2d - это библиотека .. это сделает вашу жизнь проще – Nepster 2014-05-26 11:48:32

ответ

2

Если вы не являетесь экспертом в этом вопросе, я рекомендую вы можете использовать библиотеку Box2d для этого. Это очень полный физический движок с очень хорошей поддержкой обнаружения столкновений.

Полезная ссылка: http://www.4feets.com/2009/03/2d-physics-on-android-using-box2d/

+3

Mhmm Я слышал об этой библиотеке раньше, но задавался вопросом, можете ли вы использовать ее для расчета столкновений, поскольку мне не нужна физика в ней – Foxx 2010-12-04 12:41:29

1

два шага:

  1. Дайте все, что может столкнуться с "хитбокс". Храните Rect в своих объектах, размером с выталкиваемый и в том же месте.

  2. Позвоните одному из трех myRectHitbox.contains(...). Таким образом, вы можете проверять столкновения на точках или прямоугольниках.

3

edthethird почти справа.

Вы хотите использовать myRectHitbox.intersect(myOtherRectHitbox) вместо . contains(...). .contains(...) будет только тигрировать, если один Rect полностью внутри другого, но .intersect(...) триггеры, если есть пиксель, который перекрывает другой.

И если вы используете RectF вместо Rect, вы получите точность субпикселя на устройствах, поддерживающих субпиксели.

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