2010-12-04 167 views
2

好吧,所以最好的方式來檢測android中的碰撞,作爲唯一的例子,我可以找到它的所有involes發現何時兩個對象是直接對方。我個人正在考慮使用邊界框,但即使我不知道該怎麼做,然後我仍然希望更多的東西一點點percise(每像素?)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保留在對象中,其大小與drawable相同並放在同一位置。

  2. 撥打電話myRectHitbox.contains(...)中的一個。您可以檢查點上的碰撞或以這種方式進行修正。

3

edthethird幾乎是正確的。

你想使用myRectHitbox.intersect(myOtherRectHitbox)而不是. contains(...).contains(...)只會在一個Rect完全在另一個Rect內時觸發,但如果有任何像素與另一Rect重疊,則觸發.intersect(...)

如果您使用RectF而不是Rect,您將在支持子像素的設備上獲得子像素精度。