Cocos2d iphone 如何使box2d实体沿贝塞尔曲线/圆弧路径移动

Cocos2d iphone 如何使box2d实体沿贝塞尔曲线/圆弧路径移动,cocos2d-iphone,box2d,physics,game-physics,box2d-iphone,Cocos2d Iphone,Box2d,Physics,Game Physics,Box2d Iphone,我已经广泛地搜索了如何使Box2d实体沿着Bezier曲线或弧形路径移动,其中包括起点、终点以及可能的另一个控制点。我知道cocos2d对象可以使用ccBezier四处移动,但如何对Box2d实体进行移动呢?请帮忙。提前感谢。我曾尝试使用曲线移动box2d天体(使蜘蛛绕小行星行走)。我发现使用SetTransform每一帧都有效,但它使引擎中的碰撞响应失败 通过使用棱柱关节,我找到了更好的解决方案。从要开始的位置(p0)开始创建关节,并指向下一个航路点(p1)。然后让关节使用电机将身体从p0推到

我已经广泛地搜索了如何使Box2d实体沿着Bezier曲线或弧形路径移动,其中包括起点、终点以及可能的另一个控制点。我知道cocos2d对象可以使用ccBezier四处移动,但如何对Box2d实体进行移动呢?请帮忙。提前感谢。

我曾尝试使用曲线移动box2d天体(使蜘蛛绕小行星行走)。我发现使用SetTransform每一帧都有效,但它使引擎中的碰撞响应失败

通过使用棱柱关节,我找到了更好的解决方案。从要开始的位置(p0)开始创建关节,并指向下一个航路点(p1)。然后让关节使用电机将身体从p0推到p1。当身体非常接近下一个点时,破坏关节并为下两个点形成一个新的关节。物体仍将保持其速度,因此运动看起来平滑


这有帮助吗?

您可以使用SetTransform设置身体的位置。根据需要经常更新它。您还可以使用SetLinearVelocity使身体向所需的点移动。@iforce2d:我不知道如何设置线速度使身体上下移动(以弧形/贝塞尔式移动)。我希望我不会要求你给我举个例子。谢谢。这里的源代码可能很有用:(在右手边上下移动的运动学体在1d中沿正弦曲线移动,您可以将目标位置更改为在贝塞尔曲线上)@iforce2d:谢谢。Box2d代码有点高级,我正试图了解它是如何工作的。我还看了你的教程。我喜欢射弹,并且相信这样的东西对我来说会更好,也就是说,一旦我理解了如何在代码中重新实现它。你说呢?这个很有用