1

我通过创建一个 Sprite 在用户的轨道上添加了硬币,我将其保存在一个 Body 中。问题是当玩家与硬币碰撞时,硬币被移走,但需要一纳秒的时间。我希望玩家即使在与硬币碰撞时也能平稳运行。

4

1 回答 1

1

你是对的,问题是由于Box2D。显然,移除尸体需要一些时间并导致一些延迟。如果你不打算拥有大量的身体,你可以一直保留它们,你可以在身体上安装一个传感器。传感器是一种特殊的夹具,不会与其他物体发生碰撞,但您可以找出物体是否在接触。这样,您可以将硬币保持在原位,并且只移除 Sprite,这样硬币就会消失,而不会因移除身体而产生开销。

请参阅此处的 Box2d 手册:http: //www.box2d.org/manual.html#_Toc258082972

另一件事是碰撞过滤,虽然我不确定如果正确设置了碰撞位,isTouching() 方法是否会返回 true,所以你必须尝试一下。这里有一个很好的教程: http ://www.iforce2d.net/b2dtut/collision-filtering

于 2012-08-15T09:55:08.483 回答