Limitar FPS no jogo Libgdx com Thread.sleep () não funciona

Estou desenvolvendo um pequeno jogo para android com libgdx e quero limitar os fps a 30 para economizar bateria. O problema é que não funciona. O fps cai de 60 para 56.

Aqui está a parte do código: (está no final da parte de renderização)

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();
        }
    }

e aqui está a saída:

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

desde já, obrigado...

questionAnswers(4)

yourAnswerToTheQuestion