19

私はAndroid用のゲームを作成し、Dev Phone 1でテストしました。これは完全に機能し、速度はちょうどいいです。ただし、電話のCPUは高速化されていると確信しています。彼らはすでに開発者の電話よりも速いかもしれません。

デバイスや実行速度に関係なく、ゲームがまったく同じ速度で実行されるようにするにはどうすればよいですか?何かテクニックを知っていますか?ループの先頭で毎回何らかのタイマーをチェックする必要がありますか?

フレームレートについて言及していると思いますが、ほとんどの場合、ゲームがメインのゲームループを通過する速度です。

どんな理論や経験も素晴らしいでしょう!ありがとうございました。

4

1 に答える 1

15

特定のフレームレートをターゲットにしている場合、基本的な考え方は、ゲームのティックメソッドを希望の間隔で実行するタイマーまたはスレッドが必要であるということです。タイマーを使用すると、実装は非常に簡単です。定期的に実行するようにタイマーをスケジュールするだけです。スレッドを使用する場合、スレッドが目的のフレームレートよりも速く実行される場合は、連続するティックの間にスレッドをスリープ状態にする必要があります。

ただし、間隔がフレーム間で少し異なる可能性があるため、これだけでは最良の結果は得られません。この問題に関する非常に優れた記事があります:http://gafferongames.com/game-physics/fix-your-timestep/

また、開発者の電話1よりも低速で高速なAndroid電話がすでに存在します。したがって、すべてのAndroidデバイスを対象とする場合は、両方のケースに備える必要があります。ゲームのCPU負荷がそれほど高くない場合は、すべてのデバイスで目的のフレームレートを達成できる可能性があります。ただし、フレームレートを制限しないと、高速のAndroidフォンではゲームが速すぎます。

于 2010-02-15T11:06:48.650 に答える