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...

Antworten auf die Frage(4)

Ihre Antwort auf die Frage