JavaFX中时间轴的场景更改问题

时间:2019-02-23 01:52:57

标签: javafx

我正在制作一个带有主菜单,选项菜单和实际游戏的简单JavaFX游戏。我能够成功浏览所有这些菜单,直到进行了看似无关的更改:我在下一行中调用了方法“ runGame()”。

当我运行语句时,场景正在发生变化

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

在window.setScene(app)和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()”(我知道是超级创意)。我的时间轴设置是否错误,或者基础方法是否存在错误?当我尝试在while循环中而不是使用时间轴调用“ Thread.sleep(1000)”时,在更改场景时也遇到了相同的错误。

0 个答案:

没有答案