所以我在JavaFX上制作游戏,我有一个主舞台,我希望在游戏开始之前弹出一条消息。当你击中太空时(开始游戏),弹出窗口会消失。要开始新游戏(游戏结束后),你必须点击主舞台上的“新游戏”按钮。
这有效,但只有一个问题。由于弹出窗口在用户单击“新游戏”后立即激活,因此按钮在悬停时卡住。因此,在新游戏开始后,按钮仍然是较浅的阴影。我不想删除悬停效果,但我希望它在游戏开始后立即消失。我相信正在发生的事情是,当弹出阶段打开时,下面的主要阶段不会记录鼠标移动,因此它无法移除悬停。
以下是位于主舞台控制器中的弹出窗口的代码:
public void showPopUp() {
try {
Stage stage = new Stage();
Parent root = FXMLLoader.load(getClass().getResource("popUp.fxml"));
Scene scene = new Scene(root, 210,55);
stage.setScene(scene);
stage.initStyle(StageStyle.UNDECORATED);
stage.initModality(Modality.APPLICATION_MODAL);
stage.show();
scene.setOnKeyPressed(e -> {
if ((e.getCode() == KeyCode.SPACE)) {
stage.close();
startGame();
}
});
} catch (IOException ieo) {
ieo.printStackTrace();
}
}
以下是该问题的记录: https://www.dropbox.com/s/y1d778l92mmknzb/Snake%20Game%20Recording.mov?dl=0