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()'무엇인가'tick()'및'delta -;'대신'Thread.sleep (delta/1000); – matt
tick()이 내 업데이트 호출입니다. 나는 그것이 약 90 %를 어떤 이유로 사용하기 때문에 나의 cpu를 제한 할 필요가있다. 루프를 여러 번 호출 할 수 있기 때문에 나는 그것을 생각합니다. thread.sleep가 작동합니까? 그렇다면 얼마나 오래 있었습니까? –