【发布时间】: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
【问题讨论】: