gpt4 book ai didi

java - 在自定义 Java 组件上正确查找帧速率

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:18:08 26 4
gpt4 key购买 nike

我不确定我的帧率代码是否正确,而且我无法找到我正在寻找的确切示例。

本质上,我对 java.awt.Component 进行了子类化,并在 paint(Graphics) 方法中调用了我的 calculateFrameRate() 函数,如下所示。我没有在 update() 中进行任何增量绘图。这个数字看起来很高,我想知道 Component 类的固有双缓冲是否意味着调用 paint 的次数是渲染的两倍?不过,我对双缓冲区的东西生疏了,这可能是完全不正确的。

这里是帧率的方法:

 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);

}

干杯,

哈密

最佳答案

作为替代方案,您可以查看 System.nanoTime()。这example计算由 FRAMES 定义的先前帧数的平均值。

关于java - 在自定义 Java 组件上正确查找帧速率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4195885/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com