Android(java)でゲーム時間を追跡する簡単な方法はありますか?たとえば、フレームレートに関係なく動きを滑らかに保つには、最後のフレームから経過した時間を考慮する必要があります。これはXNAで行うのは非常に簡単です(すべてのセットアップが必要なため)が、ゲームエンジンがなくても、C#でtimeSpanを使用できます。Javaのタイムスパンを調べてみましたが、あまり手が出ません。フレーム間のタイミングを処理する同等の簡単な方法はありますか?
2 に答える
0
ある特定の遅延でスレッドを実行できるようにするHandlerクラスがあります。
postDelayed(Runnable action, long delayMillis)
これを使用して、スレッドの特定のゲーム時間を設定できます。ここでdelayMillisを33に設定すると、1秒あたり30フレーム強になります。Android用のゲームライブラリがあると確信していますが、このような問題にはもっと役立ちます。
次のように、各インスタンス間の時間を手動で取得することができます。
long lastTime = 0;
Thread {
if (lastTime != 0)
elapsedTime = System.getTimeMillis() - lastTime;
lastTime = System.getTimeMillis;
}
于 2012-06-27T05:41:34.007 に答える
0
ゲーム ロジックは、フレーム レートに依存しない別のスレッドで実行する必要があります。次に、画面を更新するときに、オブジェクトを現在の状態で描画するだけです。
時間を測定できるようにする必要がある場合は、SystemClock.elapsedRealTime を使用します。
于 2012-06-27T05:56:49.407 に答える