【问题标题】:Setup golf ball physics in Scenekit在 Scenekit 中设置高尔夫球物理
【发布时间】:2018-09-22 14:10:00
【问题描述】:

我正在开发一个简单的高尔夫游戏,如下图所示。

我面临以下问题:

  1. 即使我用很小的力,球也能连续沿着草地移动?草地摩擦并没有阻止球。
  2. 有时,球速在与墙壁碰撞后会增加,而不是在与墙壁碰撞后球速应降低。墙壁上有盒子对撞机。
  3. 有时,球与墙壁碰撞后会反转其方向。

代码:

的物理特性:

 ball.physicsBody.affectedByGravity = true;
 ball.physicsBody.mass = 0.0450;
 ball.physicsBody.restitution = 0.8;
 ball.physicsBody.friction = 0.3;
 ball.physicsBody.allowsResting = true;

的物理性质:

golf.physicsBody.friction = 0.8;

墙壁的物理特性:

 leftWall.physicsBody.friction = 0;
 leftWall.physicsBody.restitution = 0.8;

我已将物理世界重力值设置为 -9.8。

我正在寻找解决上述问题的建议。谢谢。

【问题讨论】:

    标签: ios scenekit game-physics


    【解决方案1】:
    1. 要停止滚动,在 3D 物理世界中,您需要角度阻尼或线性 damping,或两者兼而有之。

    2. 摩擦组件在处理快速旋转的球时,可以在碰撞时转换为增加的运动速率。

    3. 当球的摩擦力足以在其碰撞的表面上获得牵引力时,球可能具有足够的角动量来反转其行进方向。

      李>

    【讨论】:

    • 感谢您的回复。我会尝试你的建议并通知你结果。
    • 对于你的第 2 点,我需要减少还是增加墙壁的摩擦力?
    • 对于第 1 点,我已将角度阻尼增加到 0.8,将线性阻尼增加到 0.5,但没有任何成功。
    • 对于第 3 点,我必须解决这个问题的物理特性。
    • 开始针对每一个问题提出单独的问题,包括您设置球、地面、物理世界和墙壁的代码,以及其他相关内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-18
    相关资源
    最近更新 更多