我曾帮助制作我的FPS跟踪器,但我不明白为什么我必须在打印fps后添加previousTime += 1000;
。如果有人知道告诉我。另外如果你知道他为什么添加渲染两次,请解释一下。这里是我的代码:为什么我在我的FPS(帧每秒)跟踪器中添加时间? (Java)
public void run()
{
int frames = 0;
double unprocessedSeconds = 0;
long previousTime = System.nanoTime();
double secondsPerTick = 1/60.0;
int tickCount = 0;
boolean ticked = false;
while(running)
{
//check ticker code
long currentTime = System.nanoTime();
long passedTime = currentTime - previousTime;
previousTime = currentTime;
unprocessedSeconds = passedTime/1000000000.0;
while(unprocessedSeconds > secondsPerTick)
{
tick();
unprocessedSeconds -= secondsPerTick;
ticked = true;
tickCount++;
if(tickCount % 60 == 0)
{
//System.out.println(frames + " fps");
previousTime += 1000;
fps = frames;
frames = 0;
}
}
if(ticked)
{
render();
frames++;
}
render();
frames++;
}
问问帮助你的人,因为你可能不需要。 1000在纳秒时间在数学上是不相关的(每秒有1.000.000.000 ns) – zapl