私はアンドロイドの実装に小さな問題があります。私はOpenGL ESでいくつかのものをレンダリングしています。そして、各フレームについて、私は自分の日付を更新する必要があります。だから私は無駄な計算を避けるために最大FPSを置くことに決めました。アンドロイドのFPS問題
しかし、事実は、1秒あたりのフレーム数が何であれ、何の違いも見られません。 1fpsを入れても。ここで
は、私のコードのビットがあります:
long now = SystemClock.elapsedRealtime(), diff;
diff = now - CURRENT_TIME;
if (diff < MILLISECOND_PER_FRAME)
{
try
{
wait(MILLISECOND_PER_FRAME - diff);
}
catch(Exception e)
{}
now = SystemClock.elapsedRealtime();
diff = now - CURRENT_TIME;
}
CURRENT_TIME = now;
ので、コードのその部分は、すべての実行速度を遅くしていないようです。なにか提案を ?
わかりましたので、私はその問題を解決:
そして、私は誰もが疑問を持っているケースは、XのFPSのために、私は
MILLISECOND_PER_FRAME = (int)(1000.0f/X);
としてMILLISECOND_PER_FRAMEを計算を解決しました。あるスレッドが特定の時間(ミリ秒)スリープする場合は、Thread.sleep(millis);を使用します。この関数は、実行中のスレッドに影響します。そして今、1fpsを25fpsに設定すると大きな違いが見られます。
この質問を読んだ皆さん、ありがとうございます。
下記の独自の質問に答えることができます。 – Reno