Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocos2d iphone 使Box2d对象遵循预定路径_Cocos2d Iphone_Box2d_Box2d Iphone - Fatal编程技术网

Cocos2d iphone 使Box2d对象遵循预定路径

Cocos2d iphone 使Box2d对象遵循预定路径,cocos2d-iphone,box2d,box2d-iphone,Cocos2d Iphone,Box2d,Box2d Iphone,我正在制作一个游戏,其中某个对象(建模为box2d实体)必须遵循固定路径。是否有一种方法可以指定路径坐标,并使对象在每个dt上前进 感谢您应该使用运动学实体,但您不能手动更改其位置,必须更改其速度才能正确应用动力学和碰撞 我建议采用以下算法: 第1个-计算身体在下一个dt时应该在轨道上的位置 第二个-从身体所在的位置到下一个位置做一个向量 第三,使其正常化 4rd-计算你需要多少速度,以便身体在下一个循环中处于该位置,并在向量上乘以该速度 5-将此矢量应用于物体的线速度 注意:确保运动学实体的阻

我正在制作一个游戏,其中某个对象(建模为box2d实体)必须遵循固定路径。是否有一种方法可以指定路径坐标,并使对象在每个dt上前进


感谢

您应该使用运动学实体,但您不能手动更改其位置,必须更改其速度才能正确应用动力学和碰撞

我建议采用以下算法:

第1个-计算身体在下一个dt时应该在轨道上的位置

第二个-从身体所在的位置到下一个位置做一个向量

第三,使其正常化

4rd-计算你需要多少速度,以便身体在下一个循环中处于该位置,并在向量上乘以该速度

5-将此矢量应用于物体的线速度

注意:确保运动学实体的阻力为零,以便更容易计算第四步

我从来没有做过这样的事,我想可以这样做。 希望有帮助:)

另一个选择:

  • 将鼠标关节连接到身体上
  • 使用鼠标关节的setTarget方法移动身体

检查hiepnd的答案,答案简单得多,并且应该提供相同的结果:)谢谢。我也做了类似的事情。因为我知道下一个位置,所以在第4步中我在身体上使用了setTransform。这些方法唯一的问题是:必须在onUpdate中计算和指定瞬态。现在转到另一种方法,查看box2d是否接管位置计算。