我正在制作一个带有主菜单,选项菜单和实际游戏的简单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)”时,在更改场景时也遇到了相同的错误。