我通过创建一个Sprite在用户的轨道上添加了硬币,我保存在Body中。问题是,当玩家与硬币发生碰撞时,硬币被移除但是需要一个反射时间为纳秒。我希望玩家即使在与硬币碰撞时也能保持平稳。
答案 0 :(得分:1)
你是对的,问题是由Box2D引起的。显然,移除身体需要一些时间并导致一些延迟。如果你不打算拥有大量的身体,你可以随时保留它们,你可以将传感器连接到身体上。传感器是一种特殊类型的夹具,不会与其他物体发生碰撞,但您可以发现物体是否在接触。通过这种方式,您可以将硬币保留在原位,只移除精灵,这样硬币就会消失,而不会因移除身体而产生开销。
请参阅此处的Box2d手册: http://www.box2d.org/manual.html#_Toc258082972
另一件事是碰撞过滤,虽然我不确定如果碰撞位设置得当,isTouching()方法是否会返回true,所以你必须尝试这样做。这里有一个很好的教程: http://www.iforce2d.net/b2dtut/collision-filtering