2012-08-15 62 views
1

我通過創建一個Sprite,將其保存在Body中,在用戶的軌道上添加了硬幣。問題是當玩家與硬幣碰撞時,硬幣被移除,但是在納秒時間內,它會變成一個混蛋。即使與硬幣碰撞,我也希望玩家順利運行。如何刪除AndEngine中的物體

+0

你能更具體地瞭解一下應該發生什麼嗎?有幾種可能的解決方案取決於你想要完成什麼。遊戲機制是什麼?玩家收集硬幣是什麼? – JohnEye 2012-08-15 08:03:40

+0

是的,玩家跑過並跳過不同的障礙並收集硬幣。問題是玩家收集硬幣時,硬幣消失,但玩家暫停納秒。我認爲這可能是由於框2d。你有任何解決方案。 – user1567965 2012-08-15 09:12:53

+0

是的,請參閱答案。 – JohnEye 2012-08-15 10:58:38

回答

1

你是對的,問題是由於Box2D造成的。顯然,去除身體需要一些時間並且會造成一些延遲。如果你不打算擁有大量的身體,你可以隨時保持它們,你可以將一個傳感器連接到身體上。傳感器是一種特殊的固定裝置,不會與其他物體發生碰撞,但您可以瞭解物體是否觸碰。通過這種方式,您可以將硬幣保留在原位,並且只能移除雪碧,以便硬幣在沒有移除身體的情況下消失。

見Box2D的手冊在這裏: http://www.box2d.org/manual.html#_Toc258082972

另一件事是發生碰撞的過濾,雖然我不能肯定,如果碰撞位被恰當地設置isTouching()方法是否會返回true,所以你必須嘗試一下。這裏有一個很好的教程: http://www.iforce2d.net/b2dtut/collision-filtering