我很難理解控制遊戲循環的一段代碼......我無法理解此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