我不相信我的帧速率代码是正确的,我也找不到确切的例子,我在寻找什么。
本质上,我有子类
java.awt.Component
以及
paint(Graphics)
我调用的方法
calculateFrameRate()
函数,如下所示。我不做任何增量绘图
update()
. 这个数字似乎很高,我想知道组件类的固有双缓冲是否意味着油漆被调用的数量是它被渲染的两倍?不过,我对双重缓冲的东西有点生疏,这可能是完全错误的。
以下是帧速率方法:
private List<Long> updateTimes = new ArrayList<Long>();
private void calculateFrameRate() {
long time = System.currentTimeMillis();
updateTimes.add(new Long(time));
// We will have the wrong framerate for the first 30 draws. No big.
float timeInSec = (time - updateTimes.get(0)) / 1000f;
currentFrameRate_ = 30f / timeInSec;
if (updateTimes.size() == 31)
updateTimes.remove(0);
}
干杯,
哈米