Limit FPS in Libgdx-Spiel mit Thread.sleep () funktioniert nicht
Ich entwickle ein kleines Spiel für Android mit libgdx und möchte die fps auf 30 begrenzen, um Batterie zu sparen. Das Problem ist, dass es nicht funktioniert. Die fps fallen nur von 60 auf 56.
Hier ist der Teil des Codes: (Es ist am Ende des Render-Teils)
System.out.print("\nFPS: " + Gdx.graphics.getFramesPerSecond() + "\n");
if(Gdx.graphics.getDeltaTime() < 1f/30f)
{
System.out.print("DeltaTime: " + Gdx.graphics.getDeltaTime() + " s\n");
float sleep = (1f/30f-Gdx.graphics.getDeltaTime())*1000;
System.out.print("sleep: " + sleep + " ms\n");
try
{
Thread.sleep((long) sleep);
}
catch (InterruptedException e)
{
System.out.print("Error...");
e.printStackTrace();
}
}
und hier ist die Ausgabe:
FPS: 56
DeltaTime: 0.014401722 s
sleep: 18.931612 ms
FPS: 56
DeltaTime: 0.023999143 s
sleep: 9.334191 ms
FPS: 56
DeltaTime: 0.010117603 s
sleep: 23.215733 ms
Danke im Voraus...