0

ElapsedGameTime 如何工作以使依赖于它的变量不会随着游戏的进行而增加?例如,这个方法:

private void Keyboard(GameTime gameTime)
    {
        float rotXZ = 0;

        float turningSpeed = (float)gameTime.ElapsedGameTime.TotalMilliseconds / 1000.0f;
        turningSpeed *= 1.6f * gameSpeed;
        KeyboardState keyState = Keyboard.GetState();
        if (keyState.IsKeyDown(Keys.Right))
            rotXZ += turningSpeed;
        if (keyState.IsKeyDown(Keys.Left))
            rotXZ -= turningSpeed;
    }

我从一个解释说我们使用 ElapsedGameTime 的来源得到它,因此快速/慢速计算机的旋转速度是相同的,但我不明白这是如何工作的?

谢谢

4

1 回答 1

3

它之所以有效,是因为旋转将相对于自上一帧以来的时间而不是更新次数而增加。

在更好的计算机上,与速度较慢的计算机相比,在相同的时间内会有更多的更新。

于 2012-10-16T22:00:16.667 回答