Libgdx 九补丁文字按钮高度问题

Libgdx nine patch text button height issue

我正在使用 TextButton 在我的游戏中创建对话框气泡效果。 如图所示,我已经创建了九个补丁文件 一切似乎都很好,直到我尝试将此 bubble.9 与 LibGDX 一起使用,TextButton 未根据文本高度正确拉伸。

您可以看到多行文本扩展了 TextButton 高度,但不正确。

这是代码

加载位图字体

FileHandleResolver resolver = new InternalFileHandleResolver();
assetManager.setLoader(FreeTypeFontGenerator.class, new FreeTypeFontGeneratorLoader(resolver));
assetManager.setLoader(BitmapFont.class, ".ttf", new FreetypeFontLoader(resolver));
FreetypeFontLoader.FreeTypeFontLoaderParameter dialogFont = new FreetypeFontLoader.FreeTypeFontLoaderParameter();
dialogFont.fontFileName = Conf.ASSET_FONT;
dialogFont.fontParameters.size = 8;

初始化 TextButtonStyle

NinePatch patch = atlas.createPatch("bubble");
NinePatchDrawable dialogBoxPatch = new NinePatchDrawable(patch);
buttonStyle = new TextButton.TextButtonStyle();
buttonStyle.up = dialogBoxPatch;
buttonStyle.down = dialogBoxPatch;
buttonStyle.checked = dialogBoxPatch;
buttonStyle.over = dialogBoxPatch;
buttonStyle.font = dialogFont;
buttonStyle.fontColor = Color.BLACK;

实际渲染

dialogBox = new TextButton("some\ntext", buttonStyle);
dialogBox.draw(batch, 1);

有人知道问题出在哪里吗?

终于找到问题了。 我决定用另一种字体测试 ninepatch,它的效果非常好。为了了解发生了什么,我用 glyphrstudio 打开了两种字体。看来有问题的字体设计不正确。

字体错误

字体不错

你可以看到在坏字体上没有正确设置基线和大写高度。

我希望这能帮助其他面临同样问题的人。