为什么切换屏幕的TextButton导致我的应用程序崩溃?

时间:2014-06-15 23:10:27

标签: java android libgdx skin scene2d

我目前正试图在LibGDX上创建一款简单的游戏。目前我已完成主菜单的工作,并尝试编程Level Selection菜单。我的LevelSelection类中有以下代码,但是当我尝试单击" start"时,我的应用程序崩溃了。我的主菜单中的按钮调出Level Selection菜单:

import java.util.ArrayList;

import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Screen;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.g2d.TextureAtlas;
import com.badlogic.gdx.scenes.scene2d.Stage;
import com.badlogic.gdx.scenes.scene2d.ui.Skin;
import com.badlogic.gdx.scenes.scene2d.ui.Table;
import com.badlogic.gdx.scenes.scene2d.ui.TextButton;

public class LevelSelect implements Screen {

    private Stage stage;
    private TextureAtlas atlas;
    private Table table;
    private ArrayList<TextButton> buttons;
    private Skin skin;

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

        stage.act(delta);
        stage.draw();
    }

    public void initButtons(){
        buttons = new ArrayList<TextButton>();
        for(int i=1;i<=5;i++){
            TextButton b = new TextButton(("" + i),skin);
            buttons.add(b);
        }
    }

    @Override
    public void resize(int width, int height) {
        /*stage.getViewport().update(width, height, false);
        table.invalidateHierarchy();*/
    }

    @Override
    public void show() {
        stage = new Stage();

        Gdx.input.setInputProcessor(stage);

        atlas = new TextureAtlas(Gdx.files.internal("ui/button.pack"));
        skin = new Skin(Gdx.files.internal("ui/menuSkin.json"),atlas);

        table = new Table(skin);
        this.initButtons();
    }

    @Override
    public void hide() {
        dispose();
    }

    @Override
    public void pause() {

    }

    @Override
    public void resume() {

    }

    @Override
    public void dispose() {
        stage.dispose();
        skin.dispose();
    }

}

即使没有应用程序崩溃,似乎initButtons方法也不是问题。应用程序报告没有错误,而是当我点击“开始”时,我得到一个Java Platform SE二进制文件已停止工作问题。加载此新屏幕类的按钮。

感谢您的帮助!

0 个答案:

没有答案
相关问题