2

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

我目前在托管的 JFrame 中使用以下代码LwjglApplication

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

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

4

1 回答 1

5

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

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

graphics.config是在构造函数LwjglApplicationConfiguration中传递的对象。所以只要设置LwjglApplication

config.exit = false

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

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

于 2012-11-07T03:38:12.323 回答