所以,我正在制作游戏,我想要一个FPS计数器,但是我不知道我应该做的数学是什么。我之前的计数器有效,但由于数学原因,它每秒都会更新一次。我想要不断更新的东西,但我只是不知道如何制作它。据我所知,最简单的方法是使用一个帧计数器,每帧查看它到目前为止完成的帧以及剩余的时间/剩余时间,并为剩下的第二帧建模当前帧并显示。这似乎是一个很好的理论,但我真的不知道如何将其付诸实践。我知道我需要使用double getFPS(double oldTime) {
double newTime = System.nanoTime();
double delta = newTime - oldTime;
double FPS = 1 / (delta * 1000);
FPSOldTime = newTime;
return FPS;
}
等。任何帮助将不胜感激!谢谢!
编辑1
这是我的FPS代码:
{{1}}
答案 0 :(得分:0)
我在C ++中实现了类似的东西。我想它也应该在Java中工作。函数的第一行必须使用Java时间方法。
double get_fps(double old_time) {
// Something like that in java double new_time = System.getTime().nanoseconds();
double delta = new_time - old_time;
double fps = 1 / (delta * 1000);
old_time = new_time;
return fps;
};
使用以下内容格式化double:%2.0f
PS。 (在你的游戏循环中运行它,旧的时间必须在游戏循环之前初始化。你将通过引用更改它。)