2010-12-04 4 views
2

좋아, 그렇다면 안드로이드에서 충돌을 감지하는 가장 좋은 방법은 무엇일까요? 두 가지 객체가 서로 직접 위에있을 때 찾을 수있는 유일한 예입니다. 개인적으로 경계 상자를 사용하는 것에 대해 생각하고 있었지만 어떻게해야할지 모르겠다. 그럼에도 여전히 조금 더 퍼치 (픽셀 단위)를 원한다.안드로이드에서 충돌 감지

+0

Box2d는 라이브러리입니다. 당신의 삶을 편하게 만들어 줄 것입니다. – Nepster

답변

2

이 주제에 대해 전문가가 아닌 경우 당신은 그것을하기 위해 Box2d 라이브러리를 사용합니다. 그것은 충돌 탐지를 아주 잘 지원하는 매우 완벽한 물리 엔진입니다.

유용한 링크 : http://www.4feets.com/2009/03/2d-physics-on-android-using-box2d/

+3

음,이 libary에 대해 들었지만, 물리학을 필요로하지 않으므로 충돌 계산에 Soley를 사용할 수 있는지 궁금해 왔습니다. – Foxx

1

두 단계 :

  1. 는 "hitbox에서"를 충돌 할 수있는 모든 것을 줘. 객체에 드로어 블과 크기가 같고 같은 위치에 Rect을 유지합니다.

  2. myRectHitbox.contains(...) 중 하나를 호출하십시오. 이런 식으로 포인트 나 직선의 충돌을 확인할 수 있습니다.

3

ed 세 번째가 거의 옳다.

. contains(...) 대신 myRectHitbox.intersect(myOtherRectHitbox)을 사용하고 싶습니다. .contains(...)은 하나의 Rect가 다른 Rect 안에 완전히 들어 있지만 다른 픽셀이 겹치면 .intersect(...)이 트리거되는 경우에만 트리거됩니다.

Rect 대신 RectF을 사용하면 서브 픽셀을 지원하는 장치에서 서브 픽셀 정확도를 얻게됩니다.