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

时间:2012-11-06 18:37:49

标签: java swing jframe libgdx lwjgl

我有一个游戏编辑器,可以在一个单独的窗口中(但在同一个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。有什么建议吗?

1 个答案:

答案 0 :(得分:5)

在桌面(lwjgl后端)Gdx.app.exit()发布一个Runnable,它导致循环mainLoop完成并控制掉掉该函数的底部(参见the source)。 mainLoop ends with

if (graphics.config.forceExit) System.exit(-1);

graphics.configLwjglApplicationConfiguration中传递的LwjglApplication constructor个对象。所以只需设置

config.exit = false
配置对象中的

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

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