2012-10-05 77 views
0

我創建了一個交叉silverlight/xna應用程序,我發現這個運動並不那麼流暢。平滑運動?

我正試圖將雲移動到我的屏幕上。

更新間隔每33毫秒一次。我已經運行了應用程序測試ElapsedTime.Miliseconds != 33,並且該程序從未命中,所以它每33毫秒運行一次。

我每33毫秒做的是我把x pos和減去5.4(float)來獲得我想要的速度。

但我觀察到運動不那麼光滑,感覺不舒服。

回答

3

這不是解決此問題的最佳方法。 您現在擁有它的方式,您的雲端移動將根據計算機規格以不同的速度運行。你應該做的是根據經過的時間來移動你的雲。這會使你的動畫相同的行爲的時候,無論怎麼每秒多少幀,你可以泵出:

xPos -= elapsedTime.Miliseconds * moveSpeed; 

設置MOVESPEED變量的東西,你的作品。

+3

「rate * time = distance」的經典案例。在設置移動速度時,記住度量單位。如果乘以毫秒,那麼您的速率需要在每毫秒的距離內進行乘法運算。 –