如何在AndEngine中删除碰撞的box2d体?

时间:2012-07-22 23:36:24

标签: android box2d andengine

我正在使用AndEngine创建一个带有box2d扩展名的游戏。我想实现一个条件,当两个物体碰撞时,它们应该被移除或重生。最初我尝试使用

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

但这似乎没有帮助,因为精灵附着在各自的身体上。我也尝试使用contactListener,如下所示:

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

然后再

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

但是这场比赛很糟糕。有人知道更好的方法吗?

2 个答案:

答案 0 :(得分:4)

因此有一些关于碰撞的东西,但我花了很长时间才弄清楚如何根据碰撞移除物体。所以决定做一个快速的教程来尝试帮助其他人。关键是在Box2D中你不能删除碰撞处理程序中的正文,并且需要做一些事情来标记它以便在下次更新时处理删除。 (可能是更好的方法,但这有效并完成工作)

这是一个非常好的教程的链接。

Box2D Collision and Removal

这肯定会帮助你完成工作。

谢谢:)

答案 1 :(得分:2)

如果实际发生Sprite碰撞,您可以同时删除这些物体:

mPhysicsWorld.getPhysicsConnectorManager().findPhysicsConnectorByShape(pSprite);