Java中游戏FPS的规范

Java中游戏FPS的规范,java,android,timing,Java,Android,Timing,我试图规范我用Java创建的游戏的fps。当它应该每秒输出帧速率时,它每半秒输出一次。我在这里犯了什么错误。它在Android中,所以我使用handler.postdayedthis,time来代替Thread.sleeptime 有可能看到这个类的完整代码吗?这几乎是整个类,因为它只是一个RunnableI see。。我不太确定你一开始是怎么调用它的。。我也不知道你是如何控制isPaused值的。。也许waitMs的值是1000。。?waitMs-2-end-start*1000000的值会是

我试图规范我用Java创建的游戏的fps。当它应该每秒输出帧速率时,它每半秒输出一次。我在这里犯了什么错误。它在Android中,所以我使用handler.postdayedthis,time来代替Thread.sleeptime


有可能看到这个类的完整代码吗?这几乎是整个类,因为它只是一个RunnableI see。。我不太确定你一开始是怎么调用它的。。我也不知道你是如何控制isPaused值的。。也许waitMs的值是1000。。?waitMs-2-end-start*1000000的值会是负的吗。。?但是当它暂停时,您将在waitMs毫秒内再次调用这个可运行类。。也许在那个时候,2个Runnable被重叠,给人的印象是在半秒延迟后被执行。。
if(!m.isPaused){
        long start = System.nanoTime();
        frames ++;
        cd.tick();
        long end = System.nanoTime();
        counter += ((waitMs - 2) * 1000000) - (end - start);
        if(counter >= 1000000000){
            System.out.println("Frames: " + frames + " counter: " + counter);
            counter = 0;
            frames = 0;
        }
        m.gameThread.postDelayed(this, waitMs - 2 - ((end - start) * 1000000));
        return;
    }
    m.gameThread.postDelayed(this, waitMs);