Обнаружение столкновений в Android - PullRequest
2 голосов
/ 04 декабря 2010

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

Ответы [ 3 ]

3 голосов
/ 20 августа 2012

edthethird почти прав.

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

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

2 голосов
/ 04 декабря 2010

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

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

1 голос
/ 02 июня 2012

Два шага:

  1. Дайте все, что может столкнуться с «хитбоксом».Оставьте Rect в ваших объектах того же размера, что и для рисования, и в том же месте.

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

...