我正在尝试使用Android Studio在libgdx(scene2d)中创建皮肤标签。很确定我没有在json文件中犯任何错误,因为我正在从工作教程中复制代码。 我想要启动皮肤的方法:
private void initLabel() {
skin = new Skin(Gdx.files.internal("skin.json"));
label = new Label("Score: ", skin);
}
Json文件(试图使用“// @formatter:off”和许多其他选项总是得到类似的错误):
com.badlogic.gdx.scenes.scene2d.ui.Label$LabelStyle:{
default: { font: default-font, fontColor: white } }
我收到的错误:
com.badlogic.gdx.utils.SerializationException: Error reading file: uiskin.json
at com.badlogic.gdx.scenes.scene2d.ui.Skin.load(Skin.java:98)
at com.badlogic.gdx.scenes.scene2d.ui.Skin.<init>(Skin.java:75)...
... Caused by: com.badlogic.gdx.utils.SerializationException: Error parsing JSON on line 3 near: ne2d.ui.Label$LabelStyle:{
*ERROR*default: { font: default-font, fontColor: white }
}
即使我犯了错误或类似的错误,我仍然会将此原因归结为错误:“第3行附近:ne2d.ui.Label $ LabelStyle:{错误默认值:{字体:“
非常感谢任何帮助。
答案 0 :(得分:0)
这是因为您创建的应用中没有定义默认字体。教程代码允许您创建字体名称default-font并稍后将其添加到皮肤。因此,您需要做的是生成一个新字体,然后将其添加到皮肤,最后启动skin.json文件。
private BitmapFont font;
private void initLabel() {
//create a bitmap font of your choice
font = new BitmapFont();
//create the skin using default constructor
skin = new Skin();
skin.add("default-font",font);
skin = Skin.load(Gdx.files.internal("skin.json"));
label = new Label("Score: ", skin);
}
重要的部分是skin.add("default-font",font);
您输入的名称也必须在skin.json文件中相同,在您的情况下为font: default-font
。