我正在使用AndEngine创建一个带有box2d扩展名的游戏。我想实现一个条件,当两个物体碰撞时,它们应该被移除或重生。最初我尝试使用
if(sprite1.collidesWith(sprite2))
// remove the sprites
但这似乎没有帮助,因为精灵附着在各自的身体上。我也尝试使用contactListener,如下所示:
bodyA=getFixtureA().getBody();
bodyB=getFixtureB().getBody();
然后再
if(bodyA!=null && bodyB!=null)
// remove the bodies
但是这场比赛很糟糕。有人知道更好的方法吗?
答案 0 :(得分:4)
因此有一些关于碰撞的东西,但我花了很长时间才弄清楚如何根据碰撞移除物体。所以决定做一个快速的教程来尝试帮助其他人。关键是在Box2D中你不能删除碰撞处理程序中的正文,并且需要做一些事情来标记它以便在下次更新时处理删除。 (可能是更好的方法,但这有效并完成工作)
这是一个非常好的教程的链接。
这肯定会帮助你完成工作。
谢谢:)
答案 1 :(得分:2)
如果实际发生Sprite碰撞,您可以同时删除这些物体:
mPhysicsWorld.getPhysicsConnectorManager().findPhysicsConnectorByShape(pSprite);