2010-08-19 38 views
6

我有一個遊戲了在Android上確保Android遊戲以相同的速度運行,並且它在單個線程上運行。執行run()中的工作和onDraw()中的繪製。很簡單。最好的方式,使任何設備

然而,在Droid的運行比在G1快得多。

什麼是確保遊戲以相同的速度,不管設備運行的最佳做法?

回答

4

這通常由使用「遊戲循環」(http://gamedesign.wikicomplete.info/game-loop)的組合來控制,其中代碼循環並以定時間隔繪製幀。當使用不同的設備時,幀可能需要更長的時間來繪製,所以這通常通過動態調整「細節層次」(LOD)和/或使用「跳幀」來處理,因此您不必在每個循環中繪製幀。其實還有另外一個問題,即演示一個基本的算法是:

Allegro 5 game: game loop that runs at constant speed?

-Oisin

+0

很有意思謝謝! – Jorgesys 2010-08-19 18:18:00

+0

Wikicomplete對我來說是超時的。這是一篇關於遊戲循環的好文章(http://www.koonsolo.com/news/dewitters-gameloop/)。 – idbrii 2011-07-19 23:20:42

1

運行速度通常是一件好事!確保遊戲在任何設備上正常運行的最佳方式是根據上次更新之後的時間來更新遊戲。這可以讓遊戲在更快的設備上運行時保持一致。

否則,您可以在速度更快的設備上添加一個睡眠呼叫 - 但爲什麼不能在可行時運行更平滑。

+1

由於您會更快用完電池,並且不必要地阻止其他進程使用CPU,用戶可能希望繼續使用CPU?在我看來,如果你要佔用CPU,應該有一個選擇是「好的」。 – LarsH 2010-08-20 21:34:07