Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
LibGDX在创建按钮时崩溃_Libgdx_Crash - Fatal编程技术网

LibGDX在创建按钮时崩溃

LibGDX在创建按钮时崩溃,libgdx,crash,Libgdx,Crash,我是LibGdx的新手。我已经为java编程一年了,但今天我在LibGdx中遇到了一个按钮错误 是什么引起的,我怎样才能修复它 @Override public void render(float delta) { Gdx.gl.glClearColor(1, 1, 1, 1); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); batch.begin();

我是LibGdx的新手。我已经为java编程一年了,但今天我在LibGdx中遇到了一个按钮错误

是什么引起的,我怎样才能修复它

@Override
        public void render(float delta) {
            Gdx.gl.glClearColor(1, 1, 1, 1);
            Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
            batch.begin();
            background.draw(batch);
            batch.end();
            }
        @Override
        public void show() {
            batch = new SpriteBatch();

 //   THE ERROR IS HERE|
    //                 V
            // BUTTON
            Skin skinLibgdx = new Skin();
            TextureAtlas ta =  new TextureAtlas(Gdx.files.internal("Button.pack"));
            skinLibgdx.addRegions(ta);

            Button button = new Button(skinLibgdx);
            button.addListener(new ClickListener() {
                @Override
                public void clicked(InputEvent event, float x, float y) {
                    // TODO Auto-generated method stub
                    System.out.println("ABC");
                }
            });

        }

        ...

    }
错误:

Exception in thread "LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException: No com.badlogic.gdx.scenes.scene2d.ui.Button$ButtonStyle registered with name: default
    at com.badlogic.gdx.scenes.scene2d.ui.Skin.get(Skin.java:145)
    at com.badlogic.gdx.scenes.scene2d.ui.Skin.get(Skin.java:132)
    at com.badlogic.gdx.scenes.scene2d.ui.Button.<init>(Button.java:50)
    at com.me.game.screen.MainMenu.show(MainMenu.java:53)
    at com.badlogic.gdx.Game.setScreen(Game.java:61)
    at com.me.game.screen.Splash$1.onEvent(Splash.java:64)
    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.me.game.screen.Splash.render(Splash.java:35)
    at com.badlogic.gdx.Game.render(Game.java:46)
    at com.me.game.MainGame.render(MainGame.java:16)
    at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:207)
    at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:114)
线程“LWJGL应用程序”com.badlogic.gdx.utils.GdxRuntimeException中的异常:没有使用名称注册的com.badlogic.gdx.scenes.scene2d.ui.Button$ButtonStyle:默认值
位于com.badlogic.gdx.scenes.scene2d.ui.Skin.get(Skin.java:145)
位于com.badlogic.gdx.scenes.scene2d.ui.Skin.get(Skin.java:132)
位于com.badlogic.gdx.scenes.scene2d.ui.Button.(Button.java:50)
在com.me.game.screen.MainMenu.show上(MainMenu.java:53)
在com.badlogic.gdx.Game.setScreen上(Game.java:61)
在com.me.game.screen.Splash$1.onEvent(Splash.java:64)
在aurelianribon.tweenegine.BaseTween.callCallback(BaseTween.java:380)
在aurelianribon.tweenegine.BaseTween.updateStep(BaseTween.java:521)
更新(BaseTween.java:424)
更新(TweenManager.java:166)
位于com.me.game.screen.Splash.render(Splash.java:35)
位于com.badlogic.gdx.Game.render(Game.java:46)
位于com.me.game.MainGame.render(MainGame.java:16)
位于com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:207)
位于com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:114)

仅地图册还不够按钮使用。您必须为按钮提供
默认
样式。这可以直接在皮肤上完成,也可以通过JSON文件加载。查看详细信息

检查libgdx的测试,其中包含一个相当完整的示例()

e、 g

然后加载它,例如

Skin skinLibgdx = new Skin(Gdx.files.internal("data/uiskin.json"))

请看一个完整的示例:

您应该发布您得到的错误。@MarcoDesignerMC我想这会告诉您您没有任何区域纹理作为默认名称,以创建检查,确定这是code@MarcoDesignerMC,这是一个描述“风格”的好系列并设置您的皮肤以适应任何需要样式的对象——事实上,这对于更加熟悉LibGDX是非常有益的
Skin skinLibgdx = new Skin(Gdx.files.internal("data/uiskin.json"))