我正在开发一个需要游戏结束对话框的游戏应用程序。 我尝试了多种方法,但无法开始工作。
我的游戏算法的方法在单独的线程上运行。
完成游戏后,在该线程中,我尝试调用(在 GameScene 的类中),例如 getChildren().add(endDialog) ,但什么也没发生。如果我将它添加到它的构造函数中,然后在游戏线程的末尾添加 getChildren.get(0).toFront()
,仍然没有任何反应。
有什么建议吗?
编辑
找到了一种可行的方法,但并不那么完美:
setOnMouseMoved(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent t) {
if(ended) {
getChildren().add(new EndDialog());
getChildren().get(25).setOpacity(0.7);
}
}
});
它唯一的问题是,当我玩完之后,我必须再移动一次鼠标才能出现对话框。
我应该如何及时捕获ending
字段的值?
最佳答案
你用的是什么线?
在JavaFX中你必须使用Service classe 正确执行操作,并且不要卡住 GUI 内容。
在此服务上,您有一个 onSucceeded 字段,因此如果您监听它,您就可以在它完成工作后执行您想要的操作。
您可以拉索看看this
如果您想要漂亮的对话框,请查看 ControlFX
关于JavaFx - 不想出现结束对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20995244/