2012-10-16 19 views
0

ElapsedGameTime如何工作,以便隨着遊戲的進行,依賴於它的變量不會增加?例如,這種方法:C#XNA GameTime.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所以旋轉速度是快/慢的電腦相同的來源,但我不明白這是如何工作?

感謝

+1

FYI:.TotalMilliseconds/1000相當於:.TotalSeconds –

回答

3

它的工作原理,因爲旋轉將相對於時間,因爲最後一幀,而不是更新的數量增加。

在一臺更好的電腦上,在相同的時間內會比在慢速電腦上有更多的更新。

+1

哦,所以它是「自上次打勾以來的時間」?不是「程序啓動以來的時間」? – Adam

+0

@亞當基本上是的。 – annonymously

+0

感謝您的澄清! – Adam