gpt4 book ai didi

java - LibGDX:处理时出现 AssetsManager GdxRuntimeException

转载 作者:行者123 更新时间:2023-12-01 05:36:06 24 4
gpt4 key购买 nike

您好,我对来自 libGDX 的 AssetsManager 有疑问。

我使用 AssetsManager 加载一个 TTF 和一个 Skin 并将 TTF 添加到 皮肤。然后,当我处理 AssetsManager 时,它会抛出异常。

我知道问题应该是皮肤和 Assets 管理器确实处理了相同的像素图。但是有什么办法可以防止这种情况发生吗?

Exception in thread "LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException: Pixmap already disposed!
at com.badlogic.gdx.graphics.Pixmap.dispose(Pixmap.java:315)
at com.badlogic.gdx.graphics.g2d.PixmapPacker$Page$1.dispose(PixmapPacker.java:384)

代码:

    FreeTypeFontLoaderParameter ttfParam = new FreeTypeFontLoaderParameter();
ttfParam.fontFileName = Const.TTF_ARIAL_PATH;

if (!manager.isLoaded(Const.TTF_ARIAL_SMALL, BitmapFont.class)) {
ttfParam.fontParameters.size = 16;

manager.load(Const.TTF_ARIAL_SMALL, BitmapFont.class, ttfParam);
}

if (!manager.isLoaded(Const.TTF_ARIAL_NORMAL, BitmapFont.class)) {
ttfParam.fontParameters.size = 32;

manager.load(Const.TTF_ARIAL_NORMAL, BitmapFont.class, ttfParam);
}

if (!manager.isLoaded(Const.TTF_ARIAL_LARGE, BitmapFont.class)) {
ttfParam.fontParameters.size = 64;

manager.load(Const.TTF_ARIAL_LARGE, BitmapFont.class, ttfParam);
}

if (!manager.isLoaded(Const.EDITOR_UI_SKIN, Skin.class)) {
SkinParameter skinParam = new SkinParameter(Const.EDITOR_UI_SKIN_PATH);
manager.load(Const.EDITOR_UI_SKIN, Skin.class, skinParam);
}

manager.finishLoading();

skin = manager.get(Const.EDITOR_UI_SKIN, Skin.class);

BitmapFont font = manager.get(Const.TTF_ARIAL_SMALL, BitmapFont.class);
skin.add(Const.TTF_ARIAL_SMALL, font, BitmapFont.class);

编辑:我解决了。但我不喜欢这个解决方案。

public void dispose() {
skin.remove(Const.TTF_ARIAL_SMALL, BitmapFont.class);
manager.dispose();
}

最佳答案

一旦 Assets 不再需要并且您想释放它以避免内存泄漏。使用:

manager.unload( yourAsset ) ;

有趣的是,如果你想释放所有 Assets ,无论是否立即排队或加载,而不是一个接一个地进行:

manager.clear() ;

尽管如此,通过使用 clear( ) 方法,AssetManager 仍然存在,最终:

manager.dispose

关于java - LibGDX:处理时出现 AssetsManager GdxRuntimeException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40708577/

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