У меня возникло огромное затруднение в понимании части кода, которая управляет циклом игры ... Я не могу понять цель этого цикла while (while (unprocessedSeconds> secondsForEachTick) »и почему счетчик кадров в секунду, если внутри, что если (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