【问题标题】:error reading file skin.json libgdx读取文件 skin.json libgdx 时出错
【发布时间】:2016-05-27 18:19:01
【问题描述】:

我正在尝试为我和我的朋友正在尝试制作的游戏创建主菜单。我们使用 Eclipse + LibGdx,我真的不知道我在做什么。我直接使用来自的代码,我无法在任何博客/论坛/教程上找到任何帮助。 (http://www.gamefromscratch.com/post/2015/02/03/LibGDX-Video-Tutorial-Scene2D-UI-Widgets-Layout-and-Skins.

包 com.mygdx.game; 导入 com.badlogic.gdx.ApplicationAdapter; 导入 com.badlogic.gdx.Gdx; 导入 com.badlogic.gdx.graphics.GL20; 导入 com.badlogic.gdx.graphics.Texture; 导入 com.badlogic.gdx.graphics.g2d.SpriteBatch; 导入 com.badlogic.gdx.scenes.scene2d.InputEvent; 导入 com.badlogic.gdx.scenes.scene2d.Stage; 导入 com.badlogic.gdx.scenes.scene2d.ui.Dialog; 导入 com.badlogic.gdx.scenes.scene2d.ui.Skin; 导入 com.badlogic.gdx.scenes.scene2d.ui.TextButton; 导入 com.badlogic.gdx.scenes.scene2d.utils.ClickListener; 导入 com.badlogic.gdx.utils.Timer; 导入 com.badlogic.gdx.utils.viewport.ScreenViewport; 公共类 MyGdxGame 扩展 ApplicationAdapter { 私人皮肤皮肤; 私人舞台; @覆盖 公共无效创建(){ skin = new Skin(Gdx.files.internal("uiskin.json")); 阶段 = 新阶段(新 ScreenViewport()); final TextButton button = new TextButton("Click Me",skin,"default"); button.setWidth(200); button.setHeight(50); final Dialog dialog = new Dialog("点击消息",skin); button.addListener(new ClickListener(){ @覆盖 public void clicked(InputEvent event, float x, float y) { 对话.显示(舞台); Timer.schedule(new Timer.Task() { @覆盖 公共无效运行(){ 对话框.hide(); } }, 10); } }); stage.addActor(按钮); Gdx.input.setInputProcessor(stage); } @覆盖 公共无效渲染(){ Gdx.gl.glClearColor(0, 0, 0, 1); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); stage.act(Gdx.graphics.getDeltaTime()); 阶段.draw(); } 公共静态无效主要(字符串 [] 参数) {;} }

uiskin.json 文件:

{ com.badlogic.gdx.graphics.g2d.BitmapFont: { default-font: { file: Razer.fnt } }, com.badlogic.gdx.scenes.scene2d.ui.TextButton$TextButtonStyle: { 默认值:{向下:默认圆形向下,向上:默认圆形,字体:默认字体}, }, com.badlogic.gdx.scenes.scene2d.ui.Window$WindowStyle: { 默认: { 标题字体:默认字体 } } }

桌面启动器:

包 com.mygdx.game.desktop; 导入 com.badlogic.gdx.backends.lwjgl.LwjglApplication; 导入 com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration; 导入 com.mygdx.game.MyGdxGame; 公共类桌面启动器{ 公共静态无效主要(字符串[] arg){ LwjglApplicationConfiguration 配置 = 新 LwjglApplicationConfiguration(); 新的 LwjglApplication(新的 MyGdxGame(),配置); } }

错误:

线程“LWJGL 应用程序”com.badlogic.gdx.utils.SerializationException 中的异常:读取文件时出错:uiskin.json 在 com.badlogic.gdx.scenes.scene2d.ui.Skin.load(Skin.java:97) 在 com.badlogic.gdx.scenes.scene2d.ui.Skin.(Skin.java:74) 在 com.mygdx.game.MyGdxGame.create(MyGdxGame.java:26) 在 com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:147) 在 com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:124) 引起:com.badlogic.gdx.utils.SerializationException:读取文件时出错:uiskin.json 在 com.badlogic.gdx.utils.Json.fromJson(Json.java:694) 在 com.badlogic.gdx.scenes.scene2d.ui.Skin.load(Skin.java:95) ... 4 更多 原因:com.badlogic.gdx.utils.SerializationException:找不到字体文件:Razer.fnt 在 com.badlogic.gdx.scenes.scene2d.ui.Skin$3.read(Skin.java:452) 在 com.badlogic.gdx.scenes.scene2d.ui.Skin$3.read(Skin.java:443) 在 com.badlogic.gdx.utils.Json.readValue(Json.java:884) 在 com.badlogic.gdx.scenes.scene2d.ui.Skin$1.readValue(Skin.java:408) 在 com.badlogic.gdx.utils.Json.readValue(Json.java:852) 在 com.badlogic.gdx.scenes.scene2d.ui.Skin$2.readNamedObjects(Skin.java:429) 在 com.badlogic.gdx.scenes.scene2d.ui.Skin$2.read(Skin.java:418) 在 com.badlogic.gdx.scenes.scene2d.ui.Skin$2.read(Skin.java:414) 在 com.badlogic.gdx.utils.Json.readValue(Json.java:884) 在 com.badlogic.gdx.scenes.scene2d.ui.Skin$1.readValue(Skin.java:408) 在 com.badlogic.gdx.utils.Json.fromJson(Json.java:692) ... 5 更多

谢谢。请记住,我完全迷失了,我是最后的手段。对于我在这篇文章中犯的任何错误,我深表歉意!

-ed

【问题讨论】:

    标签: java json eclipse libgdx


    【解决方案1】:
    Font file not found: Razer.fnt
    

    您必须使用Hiero tool 来创建字体。将android项目中生成的两个文件放到Assets文件夹中。如果您没有“Razer 字体”,请在某些字体网站中搜索

    【讨论】:

      【解决方案2】:

      这个错误基本上是说皮肤 json 有问题。

      虽然格式看起来不错,但我认为堆栈跟踪中还有更多内容。请查看 Razer.fnt 的路径。

      如果这不能解决问题,请在此处粘贴完整的堆栈跟踪。

      【讨论】:

        猜你喜欢
        • 2015-10-13
        • 1970-01-01
        • 1970-01-01
        • 2018-07-03
        • 2017-06-29
        • 2013-03-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多