Java 检查这个游戏循环

Java 检查这个游戏循环,java,Java,下面是我在网上找到的一个游戏循环。它可以工作,但是它给CPU带来了60%到70%的巨大负载,游戏也有点慢!我所做的所有调整都是在那个特定的pc上进行的,但当我在不同的pc上尝试时,它的行为完全不同。在这台电脑上,我得到了约60次抽搐和约150帧每秒 public void run() { init(); long lastTime = System.nanoTime(); final double amountOfTicks = 60.0;

下面是我在网上找到的一个游戏循环。它可以工作,但是它给CPU带来了60%到70%的巨大负载,游戏也有点慢!我所做的所有调整都是在那个特定的pc上进行的,但当我在不同的pc上尝试时,它的行为完全不同。在这台电脑上,我得到了约60次抽搐和约150帧每秒

public void run() {
        init();
        long lastTime = System.nanoTime();
        final double amountOfTicks = 60.0;
        double ns = 1000000000 / amountOfTicks;
        double delta = 0;
        int updates = 0;
        int frames = 0;
        long timer = System.currentTimeMillis();

        while(running){
            long now = System.nanoTime();
            delta += (now - lastTime) / ns;
            lastTime = now;
            if(delta >= 1){
                tick();
                updates++;
                delta--;
            }

            render();
            frames++;

            if(System.currentTimeMillis() - timer > 1000){
                timer += 1000;
                System.out.println(updates + " Ticks, Fps " + frames);
                updates = 0;
                frames = 0;
            }

        }
        stop();
    }
在你的while循环中加入一个线程

try {
Thread.sleep(50);
} catch(Exception e){
}

若要添加此项,请减慢fps。您不应该使用最大fps。对于大多数游戏来说,24 fps就足够了。

你可以在普通PC上发布,游戏的速度通常高于24 fps。你可以把上限改为60。是的,那会好得多。我假设这个代码来自2D游戏。对于2D游戏,20-30 fps在大多数情况下就足够了,但24 fps更像电影。