【发布时间】:2016-07-23 02:54:18
【问题描述】:
我在 JPanel 中有一个动画,它通过 javax.swing.Timer 进行自我更新。可以将此计时器构造为以毫秒为单位的延迟,该延迟必须是整数。如果我让 JPanel 每秒更新 60 次,我会将延迟设置为 1000/60 = ~16.6666。但是,这个延迟必须是一个整数,所以我可以选择向上或向下舍入。对于 16 毫秒的延迟,动画将以每秒 62.5 帧的速度更新。将延迟四舍五入到 17 毫秒会得到 58.824 的帧速率。
如何获得每秒 60 帧的帧速率?
提前致谢。
【问题讨论】:
-
系统计时器的分辨率通常约为 15 毫秒。因此,无论如何,您都不太可能获得所需的精确分辨率。
-
即使系统计时器不准确,它也应该随着时间的推移平均错误(如果我的逻辑没有错的话)并且仍然给出相同的、不受欢迎的帧速率(上图)。
标签: java swing timer frame-rate