Java - LibGDX gdx-freetype 无法从单个 TTF 加载两种字体大小

Java - LibGDX gdx-freetype fails to load two font sizes from single TTF

我正在尝试使用 gdx-freetype extension of LibGDX: size 24 and 72. For whatever reason, it doesn't load the 24 right because it looks like garbage 加载相同字体的两种不同大小。这很奇怪,因为当我没有加载 72 时它看起来是正确的。

在我的代码中,我尝试使用相同的 FreeTypeFontGenerator 和两个不同的生成器加载两种字体。据我所知,它们都产生相同的结果。此外,我加载这两种字体的顺序似乎并不重要:24 总是看起来很糟糕。这是我加载字体的代码:

FreeTypeFontGenerator generator = new FreeTypeFontGenerator(Gdx.files.internal("fontFile.ttf"));
FreeTypeFontGenerator.FreeTypeFontParameter param = new FreeTypeFontGenerator.FreeTypeFontParameter();
param.size = 72;
font = generator.generateFont(param);
generator.dispose();

FreeTypeFontGenerator generator2 = new FreeTypeFontGenerator(Gdx.files.internal("fontFile.ttf"));
FreeTypeFontGenerator.FreeTypeFontParameter param2 = new FreeTypeFontGenerator.FreeTypeFontParameter();
param2.size = 24;
smallFont = generator2.generateFont(param2);
generator2.dispose();

是我做错了什么还是 gdx-freetype 扩展有错误?感谢您的帮助。

好吧,我解决了我自己的问题,这与我加载字体的方式无关,而是我呈现 字体的方式。我正在创建一个 GlyphLayout 像这样:

textLayout = new GlyphLayout(smallFont, "Sample Text");

然后渲染成这样:

font.draw(spriteBatch, textLayout, width, height);

问题是我绘制文本时使用的字体与用于生成布局的字体不同。如果阅读本文的任何人对 gdx-freetype 有类似的问题,请确保您正确渲染字体。