我很难理解控制游戏循环的一段代码......我无法理解此while循环的用途“while(unprocessedSeconds> secondsForEachTick)”,为什么FPS计数器如果里面如果(tickCounter%60 == 0)喜欢如下上的代码:游戏循环控制
public void run()
{
int frames = 0;
double unprocessedSeconds = 0;
long previousTime = System.nanoTime();
double secondsForEachTick = 1/60.0;
int tickCount = 0; //RENDER COUNTER
boolean ticked = false;
while (running)
{
long currentTime = System.nanoTime();
long passedTime = currentTime - previousTime;
previousTime = currentTime;
unprocessedSeconds = unprocessedSeconds + passedTime/1000000000.0;
int count = 0;
while(unprocessedSeconds > secondsForEachTick)
{
tick();
count++;
unprocessedSeconds -= secondsForEachTick;
ticked = true;
tickCount++;
if(tickCount % 60 == 0){
System.out.println(frames + " fps");
previousTime += 1000;
frames = 0;
}
}
System.out.println("Iterações do loop: "+count);
if(ticked)
{
render();
frames++;
ticked = false;
}
}
}
'tickCount%60'由于名称和60,没有进入代码,它闻起来像分钟/秒的计算..(1分钟= 60秒) - 调试它,你会更好地理解它。 – Maroun