Я делаю игру на JavaFX и внедрил ползунок для управления скоростью игры. У меня есть простой слайдер (javafx.scene.control.Slider), и я связываю атрибут времени для игрового цикла со значением, которое я получаю из слайдера.
Ползунок действительно работает только при увеличении скорости игры. Если я уменьшу его, gameUpdate () остановится на некоторое время - в зависимости от того, насколько я его уменьшу. Если я увеличу ползунок, ожидая, пока игра наверстает упущенное, игра продолжится снова. Иногда игра, кажется, не догоняет, независимо от того, как долго я жду.
Изменение времени ключевого кадра - это плохая идея в целом, или я забыл что-то еще?
Я пытался изменить переменную canSkip, и это, кажется, делает игру более гладкой, когда она запускается снова, но мне не очень помогает.
def gameLoop:Timeline = Timeline{
repeatCount: Timeline.INDEFINITE
keyFrames: [
KeyFrame{
time: bind Duration.valueOf(Config.REFRESH_RATE_NUMBER - gameSpeed)
action: function(){
gameUpdate();
}
}
]//keyFrames[]
}// Timeline{}