【问题标题】:libgdx-freetype how to scale font wth correct letter spacing?libgdx-freetype 如何使用正确的字母间距缩放字体?
【发布时间】:2017-05-17 14:21:04
【问题描述】:

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

bitmapFont.getData().SetScale();

但是我有这个关于字母间距的问题:

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

我无法使用 size 参数,因为我的视口很小,无法更改。

【问题讨论】:

  • 问题不在于free-type,而在于BitmapFontChanges 从1.5.6 版本开始,您可以查看libgdx 现在如何渲染位图字体
  • 好的我知道了,但是如何才能得到和之前版本的SetScale一样的结果呢?

标签: java android libgdx freetype


【解决方案1】:

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

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

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

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(),reactoring 来自版本 1.5.6,因此您需要使用此版本中的旧版本。我有1.5.5 version的链接,下载吧。压缩具有gdx-setup.jar 文件,从该.jar 创建项目,将项目导入您的IDE 并运行。

【讨论】:

  • 我有大小 = 400 的 FreeTypeFontGenerator 并且我使用 setscale() 所以我无法调整它的大小,我不能只使用大小,因为我必须更改视口,我不能这样做这。我尝试使用旧的库,但出现问题并且应用程序崩溃,但我不明白:从这个版本和旧的 1.5.5 开始,只有一些重构?为什么以前的版本一切正常,而这个版本却有问题?
  • 今天我从1.5.5 版本测试了free-typeBitmapFont,它工作正常。
猜你喜欢
  • 1970-01-01
  • 2014-09-03
  • 1970-01-01
  • 2018-11-29
  • 2012-11-29
  • 2014-10-03
  • 2013-05-06
  • 2015-07-06
  • 2013-04-21
相关资源
最近更新 更多