我对 lin LibGDX 的字体有疑问。我有三种不同的字体和参数:
parameter_score = new FreeTypeFontGenerator.FreeTypeFontParameter();
//Some parameters..
font_score = generator.generateFont(parameter_score);
parameter_Big = new FreeTypeFontGenerator.FreeTypeFontParameter();
//Some parameters..
font_Big = generator.generateFont(parameter_Big);
parameter_Small = new FreeTypeFontGenerator.FreeTypeFontParameter();
//Some parameters..
font_Small = generator.generateFont(parameter_Small);
而且生成字体很慢。当应用程序启动时,我看到黑屏大约 3 秒钟。我听说过方法,当我第一次生成字体时,然后将它保存到某个文件中,下次我午餐应用程序时,它将从文件中获取生成的字体。但我不知道如何保存和加载生成的字体。有人知道吗?
最佳答案
BitmapFontWriter
BitmapFontWriter 是 gdx-tools 中的一个类,它可以从 BitmapFontData 实例写入 BMFont 文件。这允许使用 FreeTypeFontGenerator 生成字体,然后写入字体文件和 PNG 文件。 BitmapFontWriter 的好处是它可以更容易地从脚本运行,并且可以利用 FreeTypeFontGenerator 的阴影和边框。否则,输出与 Hiero 非常相似,尽管如果不同的字符代码呈现相同的字形,Hiero 会避免多次写入字形图像。
用法可以是这样的:
new LwjglApplication(new ApplicationAdapter() {
public void create () {
FontInfo info = new FontInfo();
info.padding = new Padding(1, 1, 1, 1);
FreeTypeFontParameter param = new FreeTypeFontParameter();
param.size = 13;
param.gamma = 2f;
param.shadowOffsetY = 1;
param.renderCount = 3;
param.shadowColor = new Color(0, 0, 0, 0.45f);
param.characters = Hiero.EXTENDED_CHARS;
param.packer = new PixmapPacker(512, 512, Format.RGBA8888, 2, false, new SkylineStrategy());
FreeTypeFontGenerator generator = new FreeTypeFontGenerator(Gdx.files.absolute("some-font.ttf"));
FreeTypeBitmapFontData data = generator.generateData(param);
BitmapFontWriter.writeFont(data, new String[] {"font.png"},
Gdx.files.absolute("font.fnt"), info, 512, 512);
BitmapFontWriter.writePixmaps(param.packer.getPages(), Gdx.files.absolute("imageDir"), name);
System.exit(0);
}
});
https://github.com/libgdx/libgdx/wiki/Hiero#bitmapfontwriter
关于java - LibGDX - 如何保存生成的 FreeType 字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37574025/