【问题标题】:Animation independent of frame rate动画独立于帧率
【发布时间】:2011-10-27 17:10:12
【问题描述】:

要使动画独立于帧率,是否需要将 delta 值乘以速度和加速度?

// Multiply both acceleration and velocity by delta?
vVelocity.x += vAcceleration.x * delta;
vVelocity.y += vAcceleration.y * delta;
position.x += vVelocity.x * delta;
position.y += vVelocity.y * delta;

我应该只对速度而不是加速度应用增量吗?

【问题讨论】:

    标签: objective-c cocos2d-iphone physics game-physics


    【解决方案1】:

    假设您的“增量”是自上次更新以来经过的时间:

    简短回答:是的。

    长答案:

    检查这类事情的一种方法是查看单元是否正常工作。不能保证,但通常如果你的单位成功了,那么你就正确地计算了。

    速度衡量单位时间的距离,而增量是时间。所以速度乘以 delta 是(选择任意单位米和秒)(m/s) * s = m。所以你可以看到速度乘以增量确实会产生距离,所以这对于位置来说是合理的。

    加速度测量每单位时间的速度,即使用相同的单位(m/s)/s。因此,加速时间增量为((m/s)/s) * s = m/s。对我来说似乎是一个速度。我们很好!

    【讨论】:

      【解决方案2】:

      是的,有必要让delta 参与速度和加速度。它们都是根据时间定义的属性(一个是m/s,另一个是m/s/s - 单位可能会有所不同),所以当它们必须非瞬时更改时,应该使用delta

      【讨论】:

        猜你喜欢
        • 2014-03-03
        • 2017-04-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多