我有一个游戏编辑器,可以在一个单独的窗口中(但在同一个VM中)启动正在编辑的游戏。但是,当游戏关闭时,我想关闭它的gdx窗口,而不会关闭整个应用程序(即编辑器)。
我目前在托管LwjglApplication
的JFrame中使用以下代码:
public void windowClosing(WindowEvent e) {
System.err.println("Now closing app...");
Gdx.app.exit();
System.err.println("App now closed.");
}
打印再见,关闭GDX窗口,然后继续终止我的VM。有什么建议吗?
答案 0 :(得分:5)
在桌面(lwjgl后端)Gdx.app.exit()
发布一个Runnable,它导致循环mainLoop
完成并控制掉掉该函数的底部(参见the source)。 mainLoop ends with:
if (graphics.config.forceExit) System.exit(-1);
graphics.config
是LwjglApplicationConfiguration
中传递的LwjglApplication
constructor个对象。所以只需设置
config.exit = false
配置对象中的(如果您当前没有创建配置对象,则可能需要创建一个并使用不同的构造函数)。您还可以在配置对象中设置其他方便的东西。
(此代码来自GIT,因此旧版本的GDX或其他后端可能会有所不同。)