我试图用一个阶段绘制多个表,到目前为止,它可以在不同行中的两个表上工作,但是当我尝试添加第3或第4个表时却不起作用。我试图单独绘制表格,但它们可以工作,但不能组合使用,这很有趣,因为它们适用于2个表格。...
我试图单独绘制一张桌子,但它们不能同时工作。
public void setupScreen() {
TextureAtlas menuUi = assetManager.get(Assetdescriptor.backGround);
TextureRegion backGroundRegion = menuUi.findRegion(Regionnames.backGround);
Skin menuSkin = assetManager.get(Assetdescriptor.skinUI);
TextButton team1 = new TextButton("Team 1", menuSkin, "Team1");
TextButton team2 = new TextButton("Team 2", menuSkin, "Team1");
TextButton team3 = new TextButton("Team 3", menuSkin, "Team3");
TextButton team4 = new TextButton("Team 4", menuSkin, "Team4");
TextButton team5 = new TextButton("Team 5", menuSkin, "Team5");
TextButton player1 = new TextButton("Spieler 1", menuSkin);
player1.addListener(new ChangeListener() {
@Override
public void changed(ChangeEvent event, Actor actor) {
System.out.println("Clicked");
}
});
TextButton player2 = new TextButton("Spieler 2", menuSkin);
TextButton kiPanzer1 = new TextButton("Ki Panzer 1", menuSkin);
TextButton kiPanzer2 = new TextButton("Ki Panzer 2", menuSkin);
TextButton kiPanzer3 = new TextButton("Ki Panzer 3", menuSkin);
Table teamTable1 = new Table();
Table teamTable2 = new Table();
Table teamTable3 = new Table();
Table teamTable4 = new Table();
Table teamTable5 = new Table();
Table TeamOverview = new Table();
Table spieler1= new Table(); // Spieler 1
Table spieler2= new Table(); // Spieler 2
Table Ki3 = new Table(); // Ki Panzer
Table Ki4 = new Table(); // Ki Panzer
Table Ki5 = new Table(); // Ki panzer
spieler1.add(player1);
spieler2.add(player2);
Ki3.add(kiPanzer1);
Ki4.add(kiPanzer2);
Ki5.add(kiPanzer3);
TeamOverview.add(team1, team2, team3, team4, team5);
teamTable1.center();
teamTable1.add(spieler1,spieler2,Ki3,Ki4,Ki5);
teamTable2.center();
teamTable2.add(spieler1,spieler2,Ki3,Ki4,Ki5);
teamTable3.center();
teamTable3.add(spieler1,spieler2,Ki3,Ki4,Ki5);
teamTable4.center();
teamTable4.add(spieler1,spieler2,Ki3,Ki4,Ki5);
Table table = new Table();
table.add(TeamOverview);
table.add(teamTable1).row();
-- -These are the tables which dont work---
table.add(teamTable2).row();
table.add(teamTable3).row();
table.add(teamTable4).row();
-----------------------------------
table.setFillParent(true);
table.setBackground(new TextureRegionDrawable(backGroundRegion));
table.pack();
stage.addActor(table);
}
没有错误消息,但图形没有变化,预期结果是6行,但只有2行。
答案 0 :(得分:0)
据我所知,您不允许重复使用同一对象(spieler1,spieler2,Ki3,Ki4,Ki5)。每次将它们添加到不同的表中时,都要创建唯一的实例。
检查com.badlogic.gdx.scenes.scene2d.Group#addActor (该表的扩展名)
public void addActor (Actor actor) {
if (actor.parent != null) {
if (actor.parent == this) return;
actor.parent.removeActor(actor, false);
}
children.add(actor);
actor.setParent(this);
actor.setStage(getStage());
childrenChanged();
}
一个演员只能有一个父母,前一个被删除。 您的表可能仍然具有所需的所有行,它们只是空的。 您可以使用setDebug(true)查看图形的“线条”。
编辑
无论如何,这个问题似乎是重复的。
请参阅
How to draw several copies of the same actor on one stage at different positions?