在身体之间平滑移动

时间:2012-05-03 09:49:33

标签: box2d game-physics physics-engine

我不确定标题是否正确(如果不是,请发表评论)。我有一个精灵(矩形体),我正在对它施加力使其从左向右移动然后向后移动。该平台由几个相同大小的矩形块组成,排成一行,两者之间没有距离。他们形成的是一条完美的直线。平台可以是平坦的或倾斜的。

我想要什么

精灵在平台上前后平滑移动。

实际发生的事情

精灵有时会在从一个块移动到另一个块的位置被阻塞,即使块之间根本没有空间。此时有时也会发生碰撞。

我试图搜索并找到一个名为“内部角落”的东西,但不知道如何解决这个问题。有办法绕行吗?谢谢!

1 个答案:

答案 0 :(得分:3)

要正确解决此问题,您需要从链形状或正确设置“鬼顶点”的边缘进行研磨。有关鬼顶点的详细信息,请查看Box2D手册。链形基本上是一堆边缘形状,但它会为你设置它们的鬼顶点。

根据您所在项目的哪个阶段,切换到使用边/链可能会非常麻烦。下一个最好的计划是将一块碎片夹在被卡住的形状的角落,以帮助它们更容易地相互移动。最后一个选择是使用圆而不是矩形。

另见:

http://code.google.com/p/box2d/wiki/FAQ

http://box2d.org/forum/viewtopic.php?f=3&t=3048

http://www.cocos2d-iphone.org/forum/topic/31787

http://www.cocos2d-iphone.org/forum/topic/29462

http://www.box2d.org/forum/viewtopic.php?f=3&t=8409

http://www.box2d.org/forum/viewtopic.php?f=3&t=7935

http://www.box2d.org/forum/viewtopic.php?f=8&t=7917

http://www.box2d.org/forum/viewtopic.php?f=3&t=7805

http://www.cocos2d-iphone.org/forum/topic/22084

http://www.google.com:)