我不确定标题是否正确(如果不是,请发表评论)。我有一个精灵(矩形体),我正在对它施加力使其从左向右移动然后向后移动。该平台由几个相同大小的矩形块组成,排成一行,两者之间没有距离。他们形成的是一条完美的直线。平台可以是平坦的或倾斜的。
我想要什么
精灵在平台上前后平滑移动。
实际发生的事情
精灵有时会在从一个块移动到另一个块的位置被阻塞,即使块之间根本没有空间。此时有时也会发生碰撞。
我试图搜索并找到一个名为“内部角落”的东西,但不知道如何解决这个问题。有办法绕行吗?谢谢!
答案 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