如何使用此代碼爲我的Java遊戲限制CPU使用率?我想一種方法可能是使用Thread.sleep()
,但只有當我可以計算時間或類似的東西。有人可以幫幫我嗎?如何限制CPU使用率?
public void run(){
this.requestFocus();
long lastTime = System.nanoTime();
double amountOfTicks = 60.0;
double ns = 1000000000/amountOfTicks;
double delta = 0;
long timer = System.currentTimeMillis();
int frames = 0;
while(isRunning){
long now = System.nanoTime();
delta += (now - lastTime)/ns;
lastTime = now;
while(delta >= 1){
tick();
delta--;
}
render();
frames++;
if(System.currentTimeMillis() - timer > 1000){
timer += 1000;
frames = 0;
}
}
stop();
}
請問您可以指出,爲什麼您想限制遊戲循環的CPU時間?也許你應該考慮一下你的設計。 –
什麼是'tick()'爲什麼不做'Thread.sleep(delta/1000);'而不是'tick()'和'delta - ;''? – matt
tick()是我的更新調用。我需要限制我的CPU,因爲它由於某種原因使用了大約90%。我認爲它是因爲我儘可能多地呼叫循環。 Thread.sleep會工作嗎?如果是這樣,多久? –