libgdx Android Studio JSON 皮肤标签错误



我正在尝试使用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:{错误默认值:{ 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

最新更新