2012-08-15 64 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