Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.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
Java 用一个阶段绘制多个表_Java_Libgdx - Fatal编程技术网

Java 用一个阶段绘制多个表

Java 用一个阶段绘制多个表,java,libgdx,Java,Libgdx,有一个问题目前我正在处理团队规模选择屏幕,到目前为止,我使用了“团队一完成”复选框。接下来我想用同一个阶段画另一张表,我不想为了节省资源而用新的阶段画。所以我的问题是,有可能画出一个阶段相邻的多表吗?这是我目前尝试的,但没有成功 所以我试着给构造器第二个表,比如: stage.addActor(table,table2) 这是行不通的 我的第二次尝试是这样的 stage.addActor(table); stage.addActor(table2); 这也不管用 public class T

有一个问题目前我正在处理团队规模选择屏幕,到目前为止,我使用了“团队一完成”复选框。接下来我想用同一个阶段画另一张表,我不想为了节省资源而用新的阶段画。所以我的问题是,有可能画出一个阶段相邻的多表吗?这是我目前尝试的,但没有成功

所以我试着给构造器第二个表,比如:

stage.addActor(table,table2)
这是行不通的

我的第二次尝试是这样的

stage.addActor(table);
stage.addActor(table2);
这也不管用

public class TeamSelectScreen implements Screen {

    public SEPGame game;
    public SpriteBatch menuBatch;
    public AssetManager assetManager;
    public Viewport viewport;
    public Stage stage;
    public MenuScreen menuScreen;
    public ButtonGroup<CheckBox> teamSelect;
    public CheckBox Tank1;
    public CheckBox Tank2;
    public CheckBox Tank3;
    public CheckBox Tank4;
    public CheckBox Tank5;


    public TeamSelectScreen(SEPGame game) {
        game = new SEPGame();
        menuBatch = new SpriteBatch();
        assetManager = new AssetManager();
        viewport = new FitViewport(SEPGame.WORLD_PIXEL_WIDTH, SEPGame.WORLD_PIXEL_HEIGHT);
        menuScreen = new MenuScreen(game);
        menuScreen.dispose();

        stage = new Stage(viewport, menuBatch);

        Gdx.input.setInputProcessor(stage);
        assetManager.load(Assetdescriptor.backGround);
        assetManager.load(Assetdescriptor.buttonNotePressed);
        assetManager.load(Assetdescriptor.buttonPressed);
        assetManager.load(Assetdescriptor.skinUI);
        assetManager.finishLoading();

    }


    public void setupScreen() {
        TextureAtlas menuUi = assetManager.get(Assetdescriptor.backGround);
        Skin uiSkin = assetManager.get(Assetdescriptor.skinUI);
        TextureRegion backGroundRegion = menuUi.findRegion(Regionnames.backGround);
        Table table = new Table();
        Table table2 = new Table();
        Label title = new Label("Team Auswahl", uiSkin);


        Tank1 = new CheckBox("Tank 1 Player", uiSkin);
        Tank2 = new CheckBox("Tank 2 Player", uiSkin);
        Tank3 = new CheckBox("Tank 3 Ki", uiSkin);
        Tank4 = new CheckBox("Tank 4 Ki", uiSkin);
        Tank5 = new CheckBox("Tank 5 Ki", uiSkin);


        ChangeListener teamSizeChanger = new ChangeListener() {
            @Override
            public void changed(ChangeEvent event, Actor actor) {

            }
        };

        Tank1.addListener(teamSizeChanger);
        Tank2.addListener(teamSizeChanger);
        Tank3.addListener(teamSizeChanger);
        Tank4.addListener(teamSizeChanger);
        Tank5.addListener(teamSizeChanger);


        Table checkTable = new Table();
        checkTable.defaults().pad(5);
        checkTable.add(Tank1).row();
        checkTable.add(Tank2).row();
        checkTable.add(Tank3).row();
        checkTable.add(Tank4).row();
        checkTable.add(Tank5).row();

        Table checkTable2 = new Table();
        Table checkTable3 = new Table();
        Table checkTable4 = new Table();
        Table checkTable5 = new Table();


        // Team 1
        table.add(checkTable);
        table.padRight(1200);
        table.setFillParent(true);
        table.pack();
        table.setBackground(new TextureRegionDrawable(backGroundRegion));

        // Team 2
        table2.add(checkTable2);
        table2.padRight(1000);
        table.setFillParent(true);
        table.pack();


        // Add 2 Tables?
        stage.addActor(table);
        stage.addActor(table2);


    }


    @Override
    public void show() {

    }


    @Override
    public void render(float delta) {
        Gdx.gl.glClearColor(1, 0, 0, 1);
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
        menuScreen.dispose();
        setupScreen();
        stage.draw();
    }
}
公共类TeamSelectScreen实现屏幕{
公共游戏;
公共SpriteBatch菜单包;
公共资产管理人资产管理人;
公共视口;
公共舞台;
公共菜单筛选菜单筛选;
公共按钮组团队选择;
公共卫生服务1;
公共卫生服务2;
公共卫生服务3;
公共卫生服务4;
公共卫生服务5;
公共团队选择屏幕(SEPGame游戏){
游戏=新游戏();
menuBatch=新的SpriteBatch();
assetManager=新建assetManager();
视口=新的FitViewport(SEPGame.WORLD\u像素\u宽度,SEPGame.WORLD\u像素\u高度);
菜单屏幕=新菜单屏幕(游戏);
menuScreen.dispose();
阶段=新阶段(视口、菜单批次);
Gdx.input.setInputProcessor(阶段);
assetManager.load(Assetdescriptor.backGround);
assetManager.load(资产描述器按钮未按下);
assetManager.load(资产描述器按钮按下);
assetManager.load(Assetdescriptor.skinUI);
assetManager.finishLoading();
}
公共屏幕(){
TextureAtlas menuUi=assetManager.get(Assetdescriptor.backGround);
Skin-uiSkin=assetManager.get(Assetdescriptor.skinUI);
TextureRegion backGroundRegion=menuUi.findRegion(Regionnames.backGround);
Table Table=新表();
表2=新表();
标签标题=新标签(“Auswahl团队”,uiSkin);
坦克1=新复选框(“坦克1玩家”,uiSkin);
坦克2=新复选框(“坦克2玩家”,uiSkin);
Tank3=新复选框(“Tank3KI”,uiSkin);
Tank4=新复选框(“Tank 4 Ki”,uiSkin);
Tank5=新复选框(“Tank5KI”,uiSkin);
ChangeListener teamSizeChanger=新的ChangeListener(){
@凌驾
公共无效已更改(ChangeEvent事件、参与者){
}
};
Tank1.addListener(teamSizeChanger);
Tank2.addListener(teamSizeChanger);
Tank3.addListener(teamSizeChanger);
Tank4.addListener(teamSizeChanger);
Tank5.addListener(teamSizeChanger);
Table checkTable=新表();
checkTable.defaults().pad(5);
checkTable.add(Tank1.row();
checkTable.add(Tank2.row();
checkTable.add(Tank3.row();
checkTable.add(Tank4.row();
checkTable.add(Tank5.row();
表checkTable2=新表();
表checkTable3=新表();
表checkTable4=新表();
表checkTable5=新表();
//第一队
表.添加(检查表);
表1.帕德赖特(1200);
表.setFillParent(true);
table.pack();
表.挫折背景(新结构区域(背景区域));
//第二小组
表2.添加(检查表2);
表2.右翼(1000);
表.setFillParent(true);
table.pack();
//添加2个表?
阶段。加法器(表);
阶段。添加者(表2);
}
@凌驾
公开展览({
}
@凌驾
公共无效渲染(浮动增量){
glClearColor(1,0,0,1);
Gdx.gl.glClear(GL20.gl\u颜色\u缓冲\u位);
menuScreen.dispose();
设置屏幕();
stage.draw();
}
}

您正在调用
table.setFillParent(true)
两次,但从未调用
table2.setFillParent(true)

另一个选项是将带有填充父级的
堆栈添加到stage,然后将两个表添加到堆栈:

Stack-Stack=Stack(表,表2)
stack.setFillParent(true)
stage.addActor(堆栈)

哦,伙计,谢谢你为我指出这一点,我尝试做一些不同的事情,现在我尝试做一个选择框,但它给了我一个空指针,即使我初始化了我的选择框。。。我认为这是一个相当愚蠢的错误,但我忽略了它,你能给我一个指向我的错误的指针吗,通常我不会问这样的问题,但我必须在周四之前完成这个项目,我现在有点绝望哈哈