2012-07-22 85 views
3

我正在使用AndEngine創建一個box2d擴展遊戲。我想實現一個條件,當兩個物體發生碰撞時,它們應該被移除或重新生成。最初我嘗試使用如何清除AndEngine中碰撞的box2d物體?

if(sprite1.collidesWith(sprite2)) 
// remove the sprites 

但這似乎沒有幫助,因爲精靈被連接到它們各自的身體。

bodyA=getFixtureA().getBody(); 
bodyB=getFixtureB().getBody(); 

再後來

if(bodyA!=null && bodyB!=null) 
// remove the bodies 

,但崩潰的遊戲:我使用contactListener如下也試過。有人知道更好的方法嗎?

+0

如果我的回答可以幫助你比請不要忘記接受我的答案,投票我會非常感謝。謝謝:) – SALMAN 2012-07-22 23:45:01

回答

4

所以有一些關於碰撞的東西,但我花了很長時間才弄清楚如何根據碰撞來移除物體。所以決定做一個快速教程,試圖幫助其他人。關鍵是,在Box2D中,您不能刪除衝突處理程序中的正文,並且需要做一些事情來標記它,以便在下次更新時處理刪除。 (可能是更好的方法,但這個工作,並完成工作)

這是一個非常好的教程鏈接。

Box2D Collision and Removal

這必將幫助您完成您的工作。

謝謝:)

+1

瑟克海,讓我試試吧! – 2012-07-22 23:47:49

+1

lolx:D肯定試試:) – SALMAN 2012-07-22 23:48:33

+0

順便說一句我還有一個問題,你有使用andengine livewallpapers的經驗嗎? – 2012-07-22 23:51:47

2

如果雪碧碰撞實際發生,你可以在同一時間刪除機構以及:

mPhysicsWorld.getPhysicsConnectorManager().findPhysicsConnectorByShape(pSprite);