首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >LibGDX JSON错误: JSON标准不允许标识符

LibGDX JSON错误: JSON标准不允许标识符
EN

Stack Overflow用户
提问于 2015-07-08 17:07:20
回答 2查看 2.1K关注 0票数 2

我复制并粘贴了一个用于uiskin.json UI的Scene2D文件,但由于某种原因,我的代码仍然崩溃。这里是给我错误的uiskin.json文件: JSON标准不允许标识符。它与default.fnt、uiskin.atlas和uiskin.png一起存储在我的资产文件夹中。

代码语言:javascript
运行
复制
{
  com.badlogic.gdx.graphics.g2d.BitmapFont: { default-font: { file: default.fnt } },
  com.badlogic.gdx.graphics.Color: {
  green: { a: 1, b: 0, g: 1, r: 0 },
  white: { a: 1, b: 1, g: 1, r: 1 },
  red: { a: 1, b: 0, g: 0, r: 1 },
  black: { a: 1, b: 0, g: 0, r: 0 },
},
  com.badlogic.gdx.scenes.scene2d.ui.Skin$TintedDrawable: {
  dialogDim: { name: white, color: { r: 0, g: 0, b: 0, a: 0.45 } },
},
  com.badlogic.gdx.scenes.scene2d.ui.Button$ButtonStyle: {
  default: { down: default-round-down, up: default-round },
  toggle: { down: default-round-down, checked: default-round-down, up: default-round }
},
  com.badlogic.gdx.scenes.scene2d.ui.TextButton$TextButtonStyle: {
  default: { down: default-round-down, up: default-round, font: default-font, fontColor: white },
  toggle: { down: default-round-down, up: default-round, checked: default-round-down, font: default-font, fontColor: white, downFontColor: red }
},
  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 }
},
  com.badlogic.gdx.scenes.scene2d.ui.SelectBox$SelectBoxStyle: {
  default: {
    font: default-font, fontColor: white, background: default-select,
    scrollStyle: default,
    listStyle: { font: default-font, selection: default-select-selection }
  }
},
  com.badlogic.gdx.scenes.scene2d.ui.SplitPane$SplitPaneStyle: {
  default-vertical: { handle: default-splitpane-vertical },
  default-horizontal: { handle: default-splitpane }
},
  com.badlogic.gdx.scenes.scene2d.ui.Window$WindowStyle: {
  default: { titleFont: default-font, background: default-window, titleFontColor: white },
  dialog: { titleFont: default-font, background: default-window, titleFontColor: white, stageBackground: dialogDim }
},
  com.badlogic.gdx.scenes.scene2d.ui.ProgressBar$ProgressBarStyle: {
  default-horizontal: { background: default-slider, knob: default-slider-knob },
  default-vertical: { background: default-slider, knob: default-round-large }
},
  com.badlogic.gdx.scenes.scene2d.ui.Slider$SliderStyle: {
  default-horizontal: { background: default-slider, knob: default-slider-knob },
  default-vertical: { background: default-slider, knob: default-round-large }
},
  com.badlogic.gdx.scenes.scene2d.ui.Label$LabelStyle: {
  default: { font: default-font, fontColor: white }
},
  com.badlogic.gdx.scenes.scene2d.ui.TextField$TextFieldStyle: {
  default: { selection: selection, background: textfield, font: default-font, fontColor: white, cursor: cursor }
},
  com.badlogic.gdx.scenes.scene2d.ui.CheckBox$CheckBoxStyle: {
  default: { checkboxOn: check-on, checkboxOff: check-off, font: default-font, fontColor: white }
},
  com.badlogic.gdx.scenes.scene2d.ui.List$ListStyle: {
  default: { fontColorUnselected: white, selection: selection, fontColorSelected: white, font: default-font }
},
  com.badlogic.gdx.scenes.scene2d.ui.Touchpad$TouchpadStyle: {
  default: { background: default-pane, knob: default-round-large }
},
  com.badlogic.gdx.scenes.scene2d.ui.Tree$TreeStyle: {
  default: { minus: tree-minus, plus: tree-plus, selection: default-select-selection }
},
  com.badlogic.gdx.scenes.scene2d.ui.Tooltip$TooltipStyle: {
  default: {
    label: { font: default-font, fontColor: white },
    background: default-pane
  }
},
}

而且,这是我到目前为止拥有的Java代码。只要一个简单的添加按钮,以供参考,如果有人需要。

代码语言:javascript
运行
复制
public class MyGdxGame extends ApplicationAdapter {
    private Skin skin;
    private TextField username, password;
    private Stage stage;

    @Override
    public void create () {
        skin = new Skin(Gdx.files.internal("uiskin.json"));
        stage = new Stage(new ScreenViewport());

        final TextButton button = new TextButton("Click Me", skin, "default");
        button.setWidth(200);
        button.setHeight(50);

        stage.addActor(button);
        Gdx.input.setInputProcessor(stage);
    }

    @Override
    public void render () {
        Gdx.gl.glClearColor(0, 0, 1, 1);
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

        stage.act(Gdx.graphics.getDeltaTime());
        stage.draw();
    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-09 14:15:28

工具提示是libgdx的一个新特性,它只存在于夜间构建中,因此您可能没有它--您可能从libgdx中复制了它,您可以检查它是9天前添加的这里。我签了我最近安装的libgdx,如果您试图导入它,那么工具提示就不存在了。

基本上删除:

代码语言:javascript
运行
复制
com.badlogic.gdx.scenes.scene2d.ui.Tooltip$TooltipStyle: {
  default: {
    label: { font: default-font, fontColor: white },
    background: default-pane
  }
},
票数 3
EN

Stack Overflow用户

发布于 2017-07-24 17:07:11

同样的错误,而不是从wiki复制的uiskin.json。(实际例子)。做了一些谷歌搜索,最后出现了一个不同的问题(不同的话题),我看到json的名字和属性周围有双引号(")。

因此,与其:

代码语言:javascript
运行
复制
com.badlogic.gdx.graphics.g2d.BitmapFont: { default-font: { file: default.fnt } },

做:

代码语言:javascript
运行
复制
"com.badlogic.gdx.graphics.g2d.BitmapFont": { "default-font": { "file": "default.fnt" } },

在所有名称周围添加双引号将删除Json standard does not allow identifiers错误。如果在运行时不使用双引号,则不知道它是否工作,因为它会导致json文件中的一个错误。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31299188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档