我有一项任务是每秒执行一次给定的方法X次(例如每秒30次)。在该tick方法中,我应该显示当前速度(基本上显示FPS)。
我甚至不知道如何开始。尝试使用谷歌搜索但没有真正的帮助。
要显示类似“fps”的内容:
public static void main(String[] args) {
while (true) callMethod();
}
private static long lastTime = System.currentTimeMillis();
public static void callMethod() {
long now = System.currentTimeMillis();
long last = lastTime;
lastTime = now;
double fps = 1000 / (double)(now - last);
System.out.println(fps);
}
您可能需要添加一些睡眠,因为否则两个步骤之间的差异太小,fps将是“无限”。
每秒30次的要求是完全不同的。正如我在评论中所说的,基本上与fps完全相反,因为每秒30次意味着正好是30 fps,这意味着不需要计算fps,因为这是原始要求。
进一步注意,“每秒30次”本身就是一个通常不好的要求,至少有两个原因: