繁体   English   中英

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

[英]How to remove colliding box2d bodies in 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

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

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

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

Box2D碰撞和移除

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

谢谢 :)

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

mPhysicsWorld.getPhysicsConnectorManager().findPhysicsConnectorByShape(pSprite);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM