2012-09-04 81 views
3

我已经搜索了如何使Box2d物体沿着贝塞尔曲线或具有起点,终点和可能的另一个控制的弧状路径移动点。我知道cocos2d对象可以使用ccBezier移动,但Box2d的实体怎么做?请帮忙。提前致谢。如何使box2d物体沿着贝塞尔曲线/圆弧路径移动

+0

您可以使用SetTransform来设置b2Body的位置。根据需要经常更新它。您还可以使用SetLinearVelocity使身体向期望的点移动。 – iforce2d

+0

@ iforce2d:我不知道如何设置线速度来使身体上升和下降(以弧状/贝塞尔状运动)。我希望我不会过多地向你展示一个例子。谢谢。 – allenalex

+0

这里的源代码可能是有用的:http://www.iforce2d.net/b2dtut/sticky-projectiles(在右侧上下移动的运动物体沿着1d中的正弦曲线移动,您可以更改目标位置在你的贝塞尔曲线上) – iforce2d

回答

0

我试图用曲线移动box2d的身体(使蜘蛛在小行星周围走动)。我发现每一帧都使用SetTransform工作,但它使引擎中的碰撞响应失败。

我能够通过使用棱形接头找到更好的解决方案。从要开始的位置(p0)开始创建一个联合,并指向下一个航点(p1)。然后用电机将关节从p0推到p1。当身体靠近下一个点时,摧毁关节并为接下来的两点形成新的关节。身体仍然有它的速度,所以运动看起来很顺利。

I put a more complete post on this on Stack Overflow here

对您有帮助吗?