gpt4 book ai didi

java - libgdx 表的 json 文件

转载 作者:太空宇宙 更新时间:2023-11-04 14:13:35 25 4
gpt4 key购买 nike

我正在尝试通过使用 json 文件制作一个具有基于 libgdx 默认 LabelStyleBitmapFontSkinTable 。 (这个文件应该保存这两个对象的引用)在这样做时,我遇到了一些不清楚的错误。例如:

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.<init>(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 创建皮肤的地方:

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 }
}
}

我做错了什么?

<小时/>

注意

我似乎和here有同样的问题但我做的是同样的事情,而且不起作用。

最佳答案

问题在于我的 json 文件中的对象顺序,而且我还错过了 ScrollPaneColor 所需的一些对象。此外,我需要将 default.fntdefault.png 添加到我的 assets 文件夹(来自 here) 。基本上它应该看起来像这样:

{
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 给我的错误。

关于java - libgdx 表的 json 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28005715/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com