Libgdx九个补丁文本按钮高度问题

时间:2017-05-27 01:21:51

标签: java libgdx nine-patch

我正在使用TextButton在游戏中创建对话框气泡效果。 我已经在图片上创建了九个补丁文件 enter image description here 一切似乎都很好,直到我尝试使用这个bubble.9。对于LibGDX,TextButton根据文本高度没有正确拉伸。

enter image description here

enter image description here

您可以看到多线文字延伸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);

有人看到问题所在吗?

1 个答案:

答案 0 :(得分:1)

我终于找到了问题。 我决定用另一种字体测试这个九点,它就像一个魅力。为了理解发生了什么,我用glyphrstudio打开了两个字体。看来问题字体设计不正确。

糟糕的字体

enter image description here

好字体

enter image description here

您可以看到在错误字体上未正确设置基线和capheight。

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