[英]Error when using JSON to initialize TextButton (Libgdx)
我试图通过给它一个包含按钮样式的JSON文件来初始化TextButton
,但是我不断收到以下错误:
线程“ LWJGL应用程序”中的异常java.lang.IllegalArgumentException:缺少LabelStyle字体。
在研究了错误的TextButtonStyle
,当您忘记在TextButtonStyle
包含字体时,似乎会显示此消息,但是我确实将其包含在JSON文件中,所以我不知道为什么它一直显示。
这是我的json文件
{
"com.badlogic.gdx.graphics.Color":{
"golden":{"r":255,"g":215,"b":0,"a":1}
},
"com.badlogic.gdx.graphics.g2d.BitmapFont": {
"arcade": {"file": "arcade.fnt"}
},
"com.badlogic.gdx.scenes.scene2d.ui.Label$LabelStyle": {
"default": {
"font": arcade,
"fontColor": golden
}
},
"com.badlogic.gdx.scenes.scene2d.ui.TextButton$TextButtonStyle": {
"buttonstyle1": {
"up": "unpressedtextbutton",
"down": "pressedtextbutton",
"font": arcade
}
}
}
在代码中,我像这样初始化按钮:
Skin skin = new Skin(Gdx.files.internal("buttonstyles.json"),new TextureAtlas(Gdx.files.internal("uistuff.atlas")));
myTextButton = new TextButton("text of the button",skin,"buttonstyle1")
我的理论是,它不读取字体文件“ arcade.fnt”,我假设它从中读取文件的目录是资产文件夹,而这就是我的“ arcade.fnt”文件所在的位置。
对不起,看来我犯了一个愚蠢的错误。 由于我在JSON文件中声明了字体,因此我删除了以前在代码中用于定义按钮样式的字体,并且以后在标签样式中使用了该字体,因此发现该字体为null,并且它给出了错误。
这样工作吗? 官方的uiskin.json是这样的:
com.badlogic.gdx.scenes.scene2d.ui.Label$LabelStyle: {
default: { font: default-font, fontColor: white }
}
甚至字体都不需要引号。
com.badlogic.gdx.graphics.g2d.BitmapFont: {
default-font: { file: default.fnt }
},
可能不是正确的JSON,但libgdx具有它自己的轻量级JSON样式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.