libgdx — добавление нескольких актеров в одну ячейку таблицы с помощью scene2d

Я хотел бы добавить несколько актеров в одну ячейку таблицы с помощью scene2d.

В моей таблице по 3 ячейки в каждой строке, а я хотел бы добавить 10 изображений в одну строку.

Table tmpTable = new Table();
tmpTable.add(img1);
tmpTable.add(img2);
...
tmpTable.add(img10);

masterTable.add(tmpTable).colspan(3);

Как лучше всего это сделать? Можно ли это сделать с помощью другой таблицы (у меня не работает)?


person user45064    schedule 26.04.2014    source источник
comment
Что конкретно не работает с кодом, который вы предоставили?   -  person kabb    schedule 27.04.2014
comment
У меня есть некоторый прогресс - когда я удаляю «площадку» из tmpTable.add(img1), она появляется.   -  person user45064    schedule 28.04.2014


Ответы (1)


Я не совсем уверен в том, чего вы хотите здесь достичь, но чтобы добавить несколько Актеров в одну ячейку, у вас есть несколько вариантов. Если вы хотите, чтобы изображения точно располагались друг над другом, вы можете использовать Stack.

Stack overlay = new Stack();
overlay.addActor(img1);
overlay.addActor(img2);
...
overlay.addActor(img10);

masterTable.add(overlay);

Обратите внимание, что добавление изображений в стек перезапишет любое расположение изображений, поэтому следующая строка не будет иметь никакого эффекта:

img1.setPosition(4,6);
img2.setSize(64,64);
(...etc)

Если вы хотите расположить изображения относительно контейнера, вы можете использовать необработанный контейнер WidgetGroup точно так же, как с Stack:

WidgetGroup overlay = new WidgetGroup();
overlay.addActor(img1);
overlay.addActor(img2);
...
overlay.addActor(img10);

masterTable.add(overlay);

Единственная разница в том, что позиционирование не будет перезаписано, поэтому о нем нужно позаботиться (возможно установить) вручную.

person David Tóth    schedule 22.05.2020