libgdx-freetype 如何使用正确的字母间距缩放字体?

libgdx-freetype how to scale font wth correct letter spacing?

对于以前版本的 FreeType,有一个方法 setScale() 现在我可以使用以下方法更改比例:

bitmapFont.getData().SetScale();

但是我遇到了字母间距的问题:

https://i.stack.imgur.com/35PGQ.png

我无法使用 size 参数,因为我的 viewPort 很小而且我无法更改它。

我建议不要缩放 BitmapFont。可能是您的位图字体渲染结果是由于 free-type Font 生成器生成的 BitmapFont 的高度缩小所致。

您可以使用 bitmapFont.getData().setScale(float x, float y); 但缩放比例应该是合理的,不要高或低两个。

您可以创建 BitmapFontFreeTypeFontGenerator 以及您需要的大小,这样您就不需要缩放 up/down。

FreeTypeFontGenerator generator = new FreeTypeFontGenerator(Gdx.files.internal("fonts/timesBold.ttf"));
FreeTypeFontGenerator.FreeTypeFontParameter parameter = new FreeTypeFontGenerator.FreeTypeFontParameter();

更改参数中的字体大小并初始化 BitmapFont:

fontParameter.size = 25; // by default this value is 16
BitmapFont font = fontGenerator.generateFont(fontParameter);

想要使用 font.setScale(); 而不是 font.getData().setScale(),反应器来自版本 1.5.6,因此您需要使用此版本中的旧版本。我有 link 个 1.5.5 version,下载吧。压缩 gdx-setup.jar 文件,从 .jar 创建项目,将项目导入 IDE 和 运行。