gpt4 book ai didi

java - 在 libgdx 中处理资源和屏幕

转载 作者:行者123 更新时间:2023-12-01 11:15:52 25 4
gpt4 key购买 nike

我编写了一个由多个屏幕组成的游戏,每次我需要一个新屏幕时,我都会使用该代码

dispose();
game.setScreen(new GameScreen(game));

在 dispose 方法中,我调用了每个资源的 dispose 方法,如纹理等。我还使用 Assets 管理器来加载游戏屏幕所需的 Assets 。在这种情况下,当我关闭游戏屏幕时,我还会调用 AssetManager.clear()

现在,当我启动游戏时,我只有菜单屏幕,使用的内存约为20MB,然后在游戏屏幕中我达到212MB,当我回到菜单屏幕时,处理AssetManger后,我仍然有186MB。主要问题是,如果我开始一个新的游戏画面,内存会达到 320MB,所以在一些游戏画面之后,游戏会达到 700MB!

我的代码有什么问题吗?

最佳答案

您永远不必手动调用 Game 类的 dispose() 方法。它会在更改屏幕或关闭应用程序时自动调用。相反,您应该像这样重写 Game dispose() (代码取 self 正在开发的项目):

@Override
public void dispose()
{
super.dispose();
assets.dispose();
}

Assets 对象是我的AssetManager。关闭应用程序后,我希望所有加载的纹理都从内存中销毁。我不能保证任何事情,但我很确定这是你的问题。

关于java - 在 libgdx 中处理资源和屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31827378/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com