我使用Hiero制作了一个位图字体,名为default.fnt
和default.png
。我可以在LibGDX中将它们用作BitmapFont,并使用font.draw()
在没有问题的情况下使用字体绘制文本。但是我不能将此字体用作Skin中的默认字体。我使用了来自here的uiskin.json文件(以及其他皮肤,但我在制作自己的字体之前删除了Droid Sans文件),因为我不知道如何制作我自己的文件。根据我在互联网上阅读的内容,.json文件已正确设置:它具有行com.badlogic.gdx.graphics.g2d.BitmapFont: { default-font: { file: default.fnt } }
,这应该使default.fnt
成为使用皮肤的小部件的默认字体。不过,当我运行该程序时,我看到了这一点:
按钮上方应该有一个标签,按钮应该有文字。
如果我执行此操作:startGameButton.getStyle().font = font;
,其中startGameButton
是其中一个按钮,而font
是BitmapFont
,就像这样创建:font = new BitmapFont(Gdx.files.internal("uiskin/default.fnt"), Gdx.files.internal("uiskin/default.png"), false);
,按钮正确显示文本。我不想这样做,因为它感觉太像黑客了。
我正在关注this教程,但我不得不在他的代码的后续版本中查看一些内容,因为LibGDX自编写以来已经发生了变化。
MenuScreen.java(有问题的屏幕)
另外请告诉我是否有更好的方法来制作菜单UI,或者是否需要其他文件。上面链接了uiskin.json
。
谢谢。
答案 0 :(得分:0)
我修好了。 Droid Sans位图图像存在于两个地方,它也是uiskin.png
的一部分。我不知道怎么做,但它可能会从该文件而不是default.png
读取字体的字母。最后,我刚刚重命名了字体的.fnt
和.png
(以及file
中的.fnt
参数),并在皮肤.json
内进行了搜索替换,现在一切正常。我不确切知道是什么导致了它,但也许default-font
是一个保留词或什么。
无论如何,它现在有效。感谢Jyro117让我想到也许我不应该替换默认值但添加我自己的字体。