将FreeType字体传递给LibGDX中的资源加载器

3
我正在尝试在启动画面上预加载一些TTF和OFT字体,同时还要实现一个带有纹理的加载条。
我的想法是预加载一些具有固定大小的字体,然后当需要使用字体时,字体管理器会检索字体。
我找到了以下类https://github.com/libgdx/libgdx/blob/master/extensions/gdx-freetype/src/com/badlogic/gdx/graphics/g2d/freetype/FreetypeFontLoader.java,但是没有任何文档说明如何使用它。
我尝试了以下代码:
parameter.size = (int)Math.ceil(fontStorage.fontSize);
    FreetypeFontLoader.FreeTypeFontLoaderParameter freeTypeParams = new FreetypeFontLoader.FreeTypeFontLoaderParameter();
    freeTypeParams.fontParameters = parameter;
    freeTypeParams.fontFileName = fontStorage.fontFile;

    GameAssetLoader.getInstance().getAssetManager().load(
            fontStorage.fontFile,
            FreetypeFontLoader.class,
            (AssetLoaderParameters)freeTypeParams
    );

我得到了以下错误:
Exception in thread "LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException: No loader for type: FreetypeFontLoader
1个回答

5

首先,您需要在 AssetManager 上设置加载器。可以参考这个测试实例

// set the loaders for the generator and the fonts themselves
FileHandleResolver resolver = new InternalFileHandleResolver();
GameAssetLoader.getInstance().getAssetManager().setLoader(FreeTypeFontGenerator.class, new FreeTypeFontGeneratorLoader(resolver));
GameAssetLoader.getInstance().getAssetManager().setLoader(BitmapFont.class, ".ttf", new FreetypeFontLoader(resolver));

另外,我发现你不能使用OTF,但是从OFT转换为TTF很容易,所以不用担心。 - Oliver Dixon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接