【问题标题】:Making a Box2d object follow a predetermined path使 Box2d 对象遵循预定路径
【发布时间】:2011-12-25 12:10:50
【问题描述】:

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

谢谢

【问题讨论】:

    标签: cocos2d-iphone box2d box2d-iphone


    【解决方案1】:

    另一种选择:

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

    【讨论】:

      【解决方案2】:

      你应该使用 Kinematic body,但你不能手动改变它的位置,你必须改变它的速度才能正确应用动力学和碰撞。

      我建议以下算法:

      1st - 计算下一个 dt 身体在轨道上的位置。

      2nd - 创建一个从身体所在位置到下一个位置的向量。

      3rd - 规范化它。

      4rd - 计算您需要多少速度才能使身体在下一个循环中处于该位置,并将该速度乘以向量。

      5th - 将此向量应用于身体的线速度。

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

      我从来没有做过这样的事情,我认为可以这样做。 希望对你有帮助:)

      【讨论】:

      • 检查 hiepnd 的答案,它更容易,并且应该提供相同的结果:)
      • 谢谢。我做了类似的事情。因为我知道下一个位置,所以我在第 4 步中使用了身体上的 setTransform。这些方法的唯一问题是:必须在 onUpdate 中计算和指定瞬态。现在转到另一种方法,看看 box2d 是否接管位置计算。
      猜你喜欢
      • 2012-02-28
      • 1970-01-01
      • 2020-10-30
      • 2012-07-10
      • 2016-03-18
      • 2013-02-26
      • 1970-01-01
      • 2015-04-21
      • 1970-01-01
      相关资源
      最近更新 更多