1

Android(java)でゲーム時間を追跡する簡単な方法はありますか?たとえば、フレームレートに関係なく動きを滑らかに保つには、最後のフレームから経過した時間を考慮する必要があります。これはXNAで行うのは非常に簡単です(すべてのセットアップが必要なため)が、ゲームエンジンがなくても、C#でtimeSpanを使用できます。Javaのタイムスパンを調べてみましたが、あまり手が出ません。フレーム間のタイミングを処理する同等の簡単な方法はありますか?

4

2 に答える 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 に答える