当我添加对话框时libgdx崩溃

时间:2014-10-10 21:05:10

标签: java android libgdx scene2d

我有问题

我开始用libgdx开始编写我的第一个游戏,然后创建了菜单 我试图给about按钮一个打开文本对话框的功能

但是当我添加代码时,游戏会在我运行时崩溃

有人可以将我链接到制作文字对话框的指南吗?

因为我发现的一切都不适合我...

我找到的代码&使用:

new Dialog("Dialog", skin, "dialog") {
   protected void result (Object object) {

   }
}.text("texttexttext").button("Yes", true).button("No", false).key(Keys.ENTER, true)
   .key(Keys.ESCAPE, false).show(stage);

堆栈跟踪

    10-11 07:41:11.051    1716-1742/com.xxx.www.android E/AndroidRuntime﹕ FATAL EXCEPTION: GLThread 60
    Process: com.xxx.www.android, PID: 1716
    com.badlogic.gdx.utils.GdxRuntimeException: No com.badlogic.gdx.scenes.scene2d.ui.Window$WindowStyle registered with name: dialog
            at com.badlogic.gdx.scenes.scene2d.ui.Skin.get(Skin.java:145)
            at com.badlogic.gdx.scenes.scene2d.ui.Dialog.<init>(Dialog.java:62)
            at com.xxx.www.MainMenu$2.<init>(MainMenu.java:104)
            at com.xxx.www.MainMenu.show(MainMenu.java:104)
            at com.badlogic.gdx.Game.setScreen(Game.java:61)
            at com.xxx.www.Splash$1.onEvent(Splash.java:72)
            at aurelienribon.tweenengine.BaseTween.callCallback(BaseTween.java:380)
            at aurelienribon.tweenengine.BaseTween.updateStep(BaseTween.java:521)
            at aurelienribon.tweenengine.BaseTween.update(BaseTween.java:424)
            at aurelienribon.tweenengine.TweenManager.update(TweenManager.java:166)
            at com.xxx.www.Splash.render(Splash.java:47)
            at com.badlogic.gdx.Game.render(Game.java:46)
            at com.xxx.www.MyGdxGame.render(MyGdxGame.java:26)
            at com.badlogic.gdx.backends.android.AndroidGraphics.onDrawFrame(AndroidGraphics.java:414)
            at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1523)
            at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1240)
10-11 07:41:15.411    1716-1716/com.xxx.www.android E/AndroidGraphics﹕ waiting for pause synchronization took too long; assuming deadlock and killing

1 个答案:

答案 0 :(得分:1)

根据您的代码和例外:

  

没有注册名称的com.badlogic.gdx.scenes.scene2d.ui.Window $ WindowStyle:对话

你需要在skin.json文件中使用名为“dialog”的WindowStyle:

com.badlogic.gdx.scenes.scene2d.ui.Window$WindowStyle:
{
 dialog: { titleFont: <your-font>, titleFontColor: <your-font-color (optional)>, background: <your-background-drawable (optional)>},
}