Итак, я сейчас использую Game of Life от Conway с использованием JavaFX. В двух словах, в моем классе, расширяющем AnimationTimer, в методе handle() он проходит через каждую ячейку в 2D-массиве и обновляет каждую позицию, а затем рисует на холст, используя информацию в 2D-массиве.Регулирование количества исполнений в секунду с использованием JavaFX
Это работает отлично, но проблема в том, что он слишком быстро работает. Вы не можете увидеть, что происходит на холсте. В окне у меня есть холст, а также несколько кнопок. Я добавил Thread.sleep (1000), чтобы попытаться отрегулировать поколение/кадр в секунду, но при этом окно не обнаруживает нажатия кнопки немедленно. Нажатие кнопки полностью реагирует, когда вы не говорите нить спать.
У кого-нибудь есть предложения по тому, как это решить?
В качестве небольшого изменения второго варианта, обратите внимание, что параметр 'AnimationTimer.handle()' отметка времени в наносекунд , Таким образом, вы можете отслеживать последнее обновление и выполнять только обновление, если количество пройденного времени больше определенного порогового значения. Это более точно, чем подсчет кадров, которые могут иметь разные интервалы. Это по сути эквивалентно решению Timeline - выбор - это только вопрос стиля. –