JavaFX animationTimer 144 fps

时间:2016-03-12 20:20:39

标签: java animation javafx frame-rate

我遇到了问题,我无法找到解决此问题的方法。

我正在使用animationTimer来更新所有内容,我尝试将其修复为60fps,因为它应该自行完成。问题是,在我的第一个屏幕上,它以144 fps运行,而在我的第二个屏幕上以60fps运行。我有一个Gsync监视器作为我的第一个屏幕,我认为因为我强制Gsync,animationTimer固定为144fps。有没有什么方法可以阻止animationTimer进一步提高60fps?

AnimationTimer timer = new AnimationTimer() {
        @Override
        public void handle(long now) {
            long elapsedNanosPerFrame = 0;
            long oldFrameTime = frameTimes[frameTimeIndex] ;
            double frameRate = 0;
            frameTimes[frameTimeIndex] = now ;
            frameTimeIndex = (frameTimeIndex + 1) % frameTimes.length ;
            if (frameTimeIndex == 0) {
                arrayFilled = true ;
            }
            if (arrayFilled) {
                long elapsedNanos = now - oldFrameTime ;
                elapsedNanosPerFrame = elapsedNanos / frameTimes.length ;
                while () {

                }
                frameRate = 1_000_000_000.0 / elapsedNanosPerFrame ;
                label.setText(String.format("Current frame rate: %.3f", frameRate));
                label.setTextFill(Color.GREEN);

            }
            update(elapsedNanosPerFrame);
        }
    };

是的,它不是一个可见的标签错误或其他东西,游戏玩法更快。

0 个答案:

没有答案