java - 桌面上的Libgdx,窗口关闭时如何处理

标签 java android libgdx

我正在使用 libgdx(com.badlogic.gdx.Game 和 Screens 之类的东西)制作游戏。我有以下问题:在桌面上,当我关闭窗口(从顶部的十字)时,应用程序当然会关闭。但我想回到菜单屏幕并在那里配置,因为我确实在那里配置资源(通过 Assets 管理器)。我有退出游戏的按钮,如果以这种方式退出,那很好。麻烦的是红叉可以按。那么在这种情况下我该如何正确处理呢?

在 android 版本上,我捕获返回键并以我自己的方式处理离开游戏的不同部分和整个游戏。它在那里工作正常。

我有另一个相关问题:

在桌面上,应用程序无法像 android 版本(android 生命周期)那样停止然后处理(自行处理,无需用户明确退出),对吗?那么,如果我在 pause() 上临时保存并在 resume() 上从游戏状态恢复游戏状态,那我不在桌面上恢复是个好主意(因为恢复不是完全恢复而且我不如果在桌面上,窗口刚刚最小化,则不希望发生恢复(正如我注意到的,在最小化/恢复窗口时调用 pause()/resume() )。

希望这不是太不清楚 :D。我试图用谷歌搜索答案,但似乎没有找到任何东西。非常感谢任何帮助。

最佳答案

我建议使用 libgdx life-cycle methods

要处理,您应该使用 dispose() 方法。你不需要自己打电话处理!当应用程序被销毁时,它将被自动调用,参见文档:

dispose () Called when the application is destroyed. It is preceded by a call to pause().

所以只需在屏幕中实现 dispose 方法即可:

@Override
public void dispose () { 
    //your code needs to get added here, like for example:
    stage.dispose();
    texture.dispose();
    //etc..
}

更新:请注意,AppliacationListener 的 dispose() 会自动调用,而不是 Screen 的 dispose(),请参阅 Springrbua 的评论

关于java - 桌面上的Libgdx,窗口关闭时如何处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22944699/

相关文章:

java - 如何连接邮件服务器来使用mime4j?

java - 如何区分程序员异常和 JVM 异常

Android:调试与发布 (SDK) 性能

java - LibGDX 多相机

java - 使用 libgdx 录制和播放音频

java - ProGuard 模拟异常

java - java中将字符串对象添加到链表中

java - Android:删除文件名中的禁止字符

java - 应用程序运行时每秒更新一次 TextView

android - 在 Android 应用程序中设置/缩放图像大小