2012-07-22 74 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);