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