【问题标题】:Make physics body in launch game less rotating and more realistic使启动游戏中的物理体旋转更少,更逼真
【发布时间】:2013-11-02 18:37:28
【问题描述】:

我正在开发基于 box2d 物理的​​启动游戏类型游戏。当主角启动时,他会得到提升或被一些敌人减速。问题是它是如何移动的。当他获得更快的速度时,他正在旋转战利品(非常非常快),我不喜欢它。你可能知道墨西哥卷饼游戏。我想知道主角是如何以如此出色的方式移动的。他有时会旋转,但只是一点点。我知道我可以通过将 isFixedRotation 设置为 true 来关闭旋转,但它看起来很糟糕。我想要旋转,但只有一点。我也想知道对于这样的游戏来说,身体的最佳形状是什么。首先我有一个蹩脚的角色,然后我决定把它做成完美的圆形,但是它像球一样在地板上旋转,所以我回到了这两者之间的东西:圆形,但不是完美的圆形。有人可以告诉我一个让我的角色更逼真(或者更准确地说是看起来更好)的好方法。我需要一些建议!

问候!

【问题讨论】:

    标签: box2d coronasdk


    【解决方案1】:

    您可以使用damping 参数、angularDampinglinearDamping 来减慢移动和旋转速度。

    阻尼用于降低物体的世界速度。阻尼不同于摩擦,因为摩擦只发生在接触中。阻尼不是摩擦的替代品,两者应结合使用。

    阻尼参数应介于 0 和无穷大之间,0 表示无阻尼,无穷大表示完全阻尼。通常,您将使用 0 到 0.1 之间的阻尼值。我一般不使用线性阻尼,因为它会使物体看起来很飘。

    【讨论】:

      【解决方案2】:

      您可以检查每帧的旋转速度,如果大于一定量,则“剪辑”它。

      例如:

      float32 rotVel = body->GetAngularVelocity();
      if(rotVel > maxVel)
      {
         body->SetAngularVelocity(maxVel);
      }
      else if(rotVel < -maxVel)
      {
         body->SetAngularVelocity(-maxVel);
      }
      

      这有用吗?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多