Таблица не рисует следующие строки - PullRequest
0 голосов
/ 27 мая 2019

Я пытался нарисовать несколько таблиц за один этап, пока он работал с двумя таблицами в разных строках, но когда я пытаюсь добавить третий или четвертый, это не работает. Я попытался нарисовать таблицы в одиночку, и они работают, но не в комбинации, что забавно, потому что они работают на 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.

1 Ответ

0 голосов
/ 27 мая 2019

Насколько я знаю, вам не разрешено повторно использовать один и тот же объект (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();
    }

AУ актера может быть только один родитель, предыдущий удаляется.В вашей таблице все еще могут быть все строки, которые вы хотите, они просто пусты.Вы можете использовать setDebug (true), чтобы увидеть рисунок «линии».

Редактировать
Этот вопрос в любом случае кажется дублирующим.См.
Как нарисовать несколько копий одного и того же актера на одной сцене в разных позициях?

...