Gdx退出关闭整个应用程序 - 如何只关闭gdx框架?

tuc*_*uxi 2 java swing lwjgl jframe libgdx

我有一个游戏编辑器,可以在一个单独的窗口(但在同一个VM中)启动正在编辑的游戏.但是,当游戏关闭时,我想关闭它的gdx窗口,而不会关闭整个应用程序(即编辑器).

我目前在承载以下内容的JFrame中使用以下代码LwjglApplication:

public void windowClosing(WindowEvent e) {
    System.err.println("Now closing app...");
    Gdx.app.exit();
    System.err.println("App now closed.");
}
Run Code Online (Sandbox Code Playgroud)

打印再见,关闭GDX窗口,然后继续终止我的VM.有什么建议?

P.T*_*.T. 5

在桌面(lwjgl后端)Gdx.app.exit()发布一个Runnable,它导致循环mainLoop完成并控制掉掉该函数的底部(参见源代码).在主循环结束与:

if (graphics.config.forceExit) System.exit(-1);
Run Code Online (Sandbox Code Playgroud)

graphics.configLwjglApplicationConfiguration在传递的对象LwjglApplication构造函数.所以只需设置

config.exit = false
Run Code Online (Sandbox Code Playgroud)

在配置对象中(如果您当前没有创建配置对象,则可能需要创建一个并使用不同的构造函数).您还可以在配置对象中设置其他方便的东西.

(此代码来自GIT,因此旧版GDX或其他后端的内容可能有所不同.)