Проблема изменения сцены с временной шкалой в JavaFX - PullRequest
0 голосов
/ 23 февраля 2019

Я делаю простую игру JavaFX с главным меню, меню опций и реальной игрой.Я был в состоянии успешно перемещаться по всем этим меню, пока я не сделал кажущееся несвязанным изменение: я вызвал метод "runGame ()" в следующей строке.

Сцена меняется, когда я выполнял оператор

if (window.getScene() == app) {
    System.out.println("This is working");
}

между window.setScene (приложение) и вызовом runGame ().Однако, даже если сцена явно изменяется, она не отображается, и программа перестает отвечать на запросы.

Содержимое runGame () выглядит следующим образом:

public void runGame() {

        gameClock = new Timeline(new KeyFrame(Duration.seconds(1), e -> spawnAndShrink()));
        gameClock.setCycleCount(Timeline.INDEFINITE);

        // Timer for program
        while (!Target.isGameOver()) {

            gameClock.play();

        }

        gameClock.stop();

    }

Я уже объявил«Timeline gameClock» вверху моей программы и импортированы все необходимые классы.Сообщения об ошибках отсутствуют.

Я также изменил метод runGame () в процессе устранения неполадок, изменив

gameClock = new Timeline(new KeyFrame(Duration.seconds(1), e -> spawnAndShrink()));

на

gameClock = new Timeline(new KeyFrame(Duration.seconds(1), e -> System.out.println("Timeline is working")));

Метод "spawnAndShrink"() "предназначен для вызова каждую секунду;он вызывает два других имени методов "spawn ()" и "shrink ()" (я знаю, что это супер креатив).Я неправильно настроил временную шкалу или в базовых методах есть ошибка?Я также сталкивался с той же ошибкой, изменяя сцены, когда пытался вызвать «Thread.sleep (1000)» в цикле while вместо использования временной шкалы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...