Libgdx:处理在 android 上不起作用的屏幕

问题描述

我使用 libgdx 和 libktx 开发我的游戏。 我的主要游戏课程是:

class MyGame : KtxGame<KtxScreen>() {
val assets = AssetManager()

override fun create() {
    addScreen(LoadingScreen(this))
    setScreen<LoadingScreen>()
    super.create()
}

override fun dispose() {
    assets.dispose()
    super.dispose()
}
}

我想在游戏结束后重新启动我的游戏画面。 为此,我删除了当前的游戏画面并添加了另一个

在我的 GameScreen.kt 中:

        myGame.removeScreen<GameScreen>()
        dispose()


        myGame.addScreen(GameScreen(myGame))
        myGame.setScreen<GameScreen>()

和处置方法是:

override fun dispose() {
        stage.dispose()
        super.dispose()
    }

在这个舞台上添加了一些演员。

使用这种方法我监控内存使用情况:

val javaHeap = Gdx.app.getJavaHeap()/1000000
val nativeHeap = Gdx.app.getNativeHeap()/1000000

但每次添加一个新屏幕(并删除旧屏幕)后,大约 30 Mb 添加到 Android 中的 ram。 在台式机中,有时会增加一些关于 2Mb 的内容。 对于 android,我进行了测试,并在多次删除添加一个屏幕后分配了超过 1Gb 的内存。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)