【问题标题】:json file for libgdx Tablelibgdx 表的 json 文件
【发布时间】:2015-01-17 23:59:31
【问题描述】:

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

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

我做错了什么?


注意

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

【问题讨论】:

    标签: java android json libgdx


    【解决方案1】:

    问题在于我的json 文件中对象的顺序,而且我错过了ScrollPaneColor 的一些必需对象。此外,我需要从heredefault.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 给我的错误。

    【讨论】:

      猜你喜欢
      • 2013-11-01
      • 2016-12-13
      • 1970-01-01
      • 2015-01-20
      • 1970-01-01
      • 2016-05-23
      • 1970-01-01
      • 2019-10-12
      • 2016-07-01
      相关资源
      最近更新 更多