gpt4 book ai didi

java - 处理后重用 AssetManager?

转载 作者:行者123 更新时间:2023-11-29 05:01:52 27 4
gpt4 key购买 nike

我正在使用 assetManager 加载各种 Assets 。但是当我从应用程序中“返回按钮”并再次加载它时,在我的 show() 方法 while (!Assets.manager.update( ))。我得到这个 FATAL EXCEPTION

com.badlogic.gdx.utils.GdxRuntimeException: 
com.badlogic.gdx.utils.GdxRuntimeException:
Cannot run tasks on an executor that has been shutdown (disposed)

我明白这意味着什么,我处置了 assetManager,因此我无法对其执行操作。但是我该如何重新加载我的 Assets 呢?

为了解决这个问题,我可以点击后退按钮并退出应用程序,以便它重新开始。或者仅在用户真正选择退出时处理 AssetManager。但我确实想知道是否可以选择以某种方式重新初始化 AssetManager

public class Assets {

public static AssetManager manager = new AssetManager();

public static final AssetDescriptor<TextureAtlas> spriteAtlas =
new AssetDescriptor<TextureAtlas>("sprites/sprites.pack", TextureAtlas.class);

public static final AssetDescriptor<TextureAtlas> uiAtlas =
new AssetDescriptor<TextureAtlas>("ui/ui.pack", TextureAtlas.class);

public static final AssetDescriptor<Skin> uiSkin =
new AssetDescriptor<Skin>("ui/ui.json", Skin.class,
new SkinLoader.SkinParameter("ui/ui.pack"));

public static final AssetDescriptor<BitmapFont> defaultFont =
new AssetDescriptor<BitmapFont>("ui/default.fnt", BitmapFont.class);

public static final AssetDescriptor<BitmapFont> mediumFont =
new AssetDescriptor<BitmapFont>("ui/medium.fnt", BitmapFont.class);

public static void load()
{
manager.load(spriteAtlas);
manager.load(uiAtlas);
manager.load(uiSkin);
manager.load(defaultFont);
manager.load(mediumFont);
}

public static void dispose()
{
manager.dispose();
}

}

最佳答案

每次调用加载时创建一个新的。像这样:

public static AssetManager manager;

public static void load()
{
manager = new AssetManager();
manager.load(spriteAtlas);
manager.load(uiAtlas);
manager.load(uiSkin);
manager.load(defaultFont);
manager.load(mediumFont);
}

关于java - 处理后重用 AssetManager?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31863908/

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