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

Oli*_*xon 3 java fonts android libgdx

我正在尝试在我的闪屏上预加载大量 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
    );
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Exception in thread "LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException: No loader for type: FreetypeFontLoader
Run Code Online (Sandbox Code Playgroud)

noo*_*one 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));
Run Code Online (Sandbox Code Playgroud)