libgdx表的json文件

我试图通过使用json文件创建一个基于libgdx的默认LabelStyleBitmapFontSkin Table 。 (这个文件应该包含这两个对象的引用)在这样做时我得到一些不明确的错误。 例如:

 Exception in thread "LWJGL Application" com.badlogic.gdx.utils.SerializationException: Error reading file: ui/uiskin.json at com.badlogic.gdx.scenes.scene2d.ui.Skin.load(Skin.java:96) at com.badlogic.gdx.scenes.scene2d.ui.Skin.(Skin.java:73) at com.naitsirc.Interpolation.Test.show(Test.java:47) at com.badlogic.gdx.Game.setScreen(Game.java:61) at com.naitsirc.Interpolation.InterpolationTest.create(InterpolationTest.java:9) at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:136) at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:114) Caused by: com.badlogic.gdx.utils.SerializationException: Error reading file: ui/uiskin.json at com.badlogic.gdx.utils.Json.fromJson(Json.java:662) at com.badlogic.gdx.scenes.scene2d.ui.Skin.load(Skin.java:94) ... 6 more Caused by: com.badlogic.gdx.utils.SerializationException: Serialization trace: font (com.badlogic.gdx.scenes.scene2d.ui.Label$LabelStyle) at com.badlogic.gdx.utils.Json.readFields(Json.java:762) at com.badlogic.gdx.utils.Json.readValue(Json.java:865) at com.badlogic.gdx.scenes.scene2d.ui.Skin$1.readValue(Skin.java:418) at com.badlogic.gdx.utils.Json.readValue(Json.java:809) at com.badlogic.gdx.scenes.scene2d.ui.Skin$2.readNamedObjects(Skin.java:439) at com.badlogic.gdx.scenes.scene2d.ui.Skin$2.read(Skin.java:428) at com.badlogic.gdx.scenes.scene2d.ui.Skin$2.read(Skin.java:424) at com.badlogic.gdx.utils.Json.readValue(Json.java:839) at com.badlogic.gdx.scenes.scene2d.ui.Skin$1.readValue(Skin.java:418) at com.badlogic.gdx.utils.Json.fromJson(Json.java:660) ... 7 more Caused by: com.badlogic.gdx.utils.GdxRuntimeException: No com.badlogic.gdx.graphics.g2d.BitmapFont registered with name: default-font at com.badlogic.gdx.scenes.scene2d.ui.Skin.get(Skin.java:145) at com.badlogic.gdx.scenes.scene2d.ui.Skin$1.readValue(Skin.java:417) at com.badlogic.gdx.utils.Json.readFields(Json.java:755) ... 16 more* 

这是我用json创建skin的地方:

 public void show() { Gdx.input.setInputProcessor(stage = new Stage()); skin = new Skin(Gdx.files.internal("ui/uiskin.json")); // HERE container = new Table(); table = new Table(skin); for(int i = 0; i < interpolationNames.length; i++){ //table.row(); table.add(interpolationNames[i]); // I am trying to populate these table cells } ScrollPane pane = new ScrollPane(table); container.add(pane); stage.addActor(container); renderer = new ShapeRenderer(); } 

我的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文件中对象的顺序,我也错过了ScrollPaneColor一些必需对象。 另外我需要从这里将default.fntdefault.png添加到我的assets文件夹中。 基本上它应该看起来像这样:

 { com.badlogic.gdx.graphics.g2d.BitmapFont: { default-font: { file: default.fnt } }, com.badlogic.gdx.graphics.Color: { white: { a: 1, b: 1, g: 1, r: 1 }, }, com.badlogic.gdx.scenes.scene2d.ui.Label$LabelStyle: { default: { font: default-font, fontColor: white } }, com.badlogic.gdx.scenes.scene2d.ui.ScrollPane$ScrollPaneStyle: { default: { vScroll: default-scroll, hScrollKnob: default-round-large, background: default-rect, hScroll: default-scroll, vScrollKnob: default-round-large } } } 

这说我仍然不明白为什么需要某个订单,我也不知道如何找出需要在json文件中放置哪些特定对象。 我弄清楚我需要这些的唯一方法是Eclipse给我的错误。