2011-10-07 41 views
0

我使用XNA工作的一個非常簡單的蛇遊戲在C#。問題是我想讓精靈以增量移動,但速度並不快。由於精靈是16x16像素,它以16像素的增量移動。例如,如果目前的方向是正確的,這行代碼執行:如何移動精靈在遞增,但慢慢地

playerPosition.X += 16; 

這工作很漂亮,但它的動作以令人難以置信的速度。我會如何使它移動得更慢?每1/2秒像16個像素。

回答

0

它已經很長一段時間,因爲我最後一次使用XNA但是從我記得在遊戲循環,當你做你的行動,你可以訪問哪些本質上是時間,因爲最後一個動作經過的屬性。你應該使用這個,並減少你的16像素的運動,只有在第二部分的時候才能達到。

大多數時候,你可以只除以60,並在使用的時候,作爲新的移動速度和是相當安全的。所以如果你想每秒移動16個像素,那麼你的每幀像素移動就是16/60。

0

你可以保持內部計數器「自從上次的舉動,」添加到它的每一個幀,一旦它通過一個指定的閾值做移動和重置計數器。

Game.Update通行證在GameTime對象,你可以用它來確定自上次Update經過的時間被調用。