2012-05-30 54 views
1

我試圖做到這一點,當一個連接到一個物理機構的精靈與另一個精靈級別發生重疊時。第二個精靈不會附加到物理機構。AndEngine - 檢查是否與Sprite或Physics Body重疊?

更具體地說,當兩個精靈重疊時,我希望遊戲不斷檢查精靈中心之間的距離是否小於一定數量。那麼如果距離足夠小,就會發生一些事情。

我試圖使用碰撞檢查作爲優化遊戲的一種方式,因此它不必經常檢查類型A和B的每個單個對象之間的距離,即使它們甚至不是很接近。它只會在距離足夠近時重新檢查距離。

現在我想知道的是我該如何做到這一點?作爲AndEngine的一部分,是否有辦法檢查精靈之間的碰撞?或者,將一個物理物體附加到第二個物體上,然後使用物理碰撞檢測更容易?但是,如果我這樣做,我可以做到這一點,所以碰撞將被檢測到,但他們實際上不會實際「碰撞」?

回答

2

是的,請參見CollisionDetectionExample.java。我建議你下載整個示例包,這對於AndEngine沒有任何文檔非常有用。請注意,碰撞檢測不是像素完美的,所以它仍然會檢測Sprites透明部分的碰撞。那有a library,但恐怕已經過時了。

+0

我從示例中看到,它生成一個新的UpdateHandler(),然後重寫onUpdate()方法。那麼將所有基於時間的遊戲邏輯放到這個UpdateHandler中,還是應該爲不同的事件使用多個遊戲邏輯? –

+1

我不認爲使用多個UpdateHandler的性能損失真的很重要。合併UpdateHandler可以幫助你獲得更好的性能,如果你可以重用一些由於分離而創建兩次的東西。我可能是錯的,所以我建議你爲此寫一點測試。 – JohnEye