在这里您可以阅读有关如何提供自己的AssetLoader
.
您必须实现 aSynchronousAssetLoader
或 a AsynchronousAssetLoader
。那些会使文件变成自由类型的字体。有了它,您可以使用生成器来生成您想要的BitmapFont
. 由于您想使用资产管理器,因此您必须覆盖位图字体的默认加载器,如下所示:
manager.setLoader(BitmapFont.class, new MyFreeTypeFontLoader(new InternalFileHandleResolver()));
通过AssetLoaderParameters
您可以向加载程序提供更多信息,例如字体大小。
以下代码未经测试,但可能有效:
public class FreeTypeFontLoader extends SynchronousAssetLoader<BitmapFont, FreeTypeFontLoader.FreeTypeFontParameters> {
public FreeTypeFontLoader(FileHandleResolver resolver) {
super(resolver);
}
@Override
public BitmapFont load(AssetManager assetManager, String fileName, FileHandle file, FreeTypeFontParameters parameter) {
FreeTypeFontGenerator generator = new FreeTypeFontGenerator(file);
return generator.generateFont(parameter.fontParameters);
}
static public class FreeTypeFontParameters extends AssetLoaderParameters<BitmapFont> {
public FreeTypeFontParameter fontParameters;
}
@Override
public Array<AssetDescriptor> getDependencies(String fileName, FileHandle file, FreeTypeFontParameters parameter) {
return null;
}
}
更新:
这不再是必需的了,gdx-freetype 扩展现在有 freetype 字体本身的加载器!