Table 的演员放在 table (LIBGDX)
Actor with Table placed in a table (LIBGDX)
- 我有一个主 Table A
- 我在 Table A 的第一行有一个新的 Table B
- 我在 Table A 中有第二行,Actor C 包含 Table D
TableB和D的内容相等。唯一的区别是,Table D 在演员中:
问:为什么Actor位置不对?它位于 Table A(Table A = 蓝色)的左下角。可以手动定位Actor C,但我想明白,这里有什么问题。
代码:
Table outerTable = createOuterTable(font, skin);
outerTable.debug();
outerTable.setPosition(200,200);
stage.addActor(outerTable);
private Table createTable_B(BitmapFont font){
Table table = new Table();
Label.LabelStyle labelStyle = new Label.LabelStyle(font, new Color(Color.GREEN));
Label firstlabel = new Label("Table B row 1", labelStyle);
Label secondlabel = new Label("Table B row 2", labelStyle);
table.add(firstlabel);
table.row();
table.add(secondlabel);
table.debug();
return table;
}
private Table createOuterTable(BitmapFont font, Skin skin){
Table table = new Table();
TableActor actor_C = new TableActor(skin);
table.add(createTable_B(font)).pad(20);
table.row();
table.add(actor_C).pad(20);
table.debug();
return table;
}
public class TableActor extends Group {
private final BitmapFont font;
public TableActor(Skin skin) {
font = skin.get(Label.LabelStyle.class).font;
Table table = createInnerTable(font);
addActor(table);
setTransform(false);
}
private Table createInnerTable(BitmapFont font){
Table table = new Table();
Label.LabelStyle labelStyle = new Label.LabelStyle(font, new Color(Color.GREEN));
Label firstlabel = new Label("Table D row 1", labelStyle);
Label secondlabel = new Label("Table D row 2", labelStyle);
table.add(firstlabel);
table.row();
table.add(secondlabel);
table.debug();
return table;
}
使用 Container
而不是 Group
并检查 Container
中的代码以了解仅使用 Group
.
时的错误
- 我有一个主 Table A
- 我在 Table A 的第一行有一个新的 Table B
- 我在 Table A 中有第二行,Actor C 包含 Table D
TableB和D的内容相等。唯一的区别是,Table D 在演员中:
问:为什么Actor位置不对?它位于 Table A(Table A = 蓝色)的左下角。可以手动定位Actor C,但我想明白,这里有什么问题。
代码:
Table outerTable = createOuterTable(font, skin);
outerTable.debug();
outerTable.setPosition(200,200);
stage.addActor(outerTable);
private Table createTable_B(BitmapFont font){
Table table = new Table();
Label.LabelStyle labelStyle = new Label.LabelStyle(font, new Color(Color.GREEN));
Label firstlabel = new Label("Table B row 1", labelStyle);
Label secondlabel = new Label("Table B row 2", labelStyle);
table.add(firstlabel);
table.row();
table.add(secondlabel);
table.debug();
return table;
}
private Table createOuterTable(BitmapFont font, Skin skin){
Table table = new Table();
TableActor actor_C = new TableActor(skin);
table.add(createTable_B(font)).pad(20);
table.row();
table.add(actor_C).pad(20);
table.debug();
return table;
}
public class TableActor extends Group {
private final BitmapFont font;
public TableActor(Skin skin) {
font = skin.get(Label.LabelStyle.class).font;
Table table = createInnerTable(font);
addActor(table);
setTransform(false);
}
private Table createInnerTable(BitmapFont font){
Table table = new Table();
Label.LabelStyle labelStyle = new Label.LabelStyle(font, new Color(Color.GREEN));
Label firstlabel = new Label("Table D row 1", labelStyle);
Label secondlabel = new Label("Table D row 2", labelStyle);
table.add(firstlabel);
table.row();
table.add(secondlabel);
table.debug();
return table;
}
使用 Container
而不是 Group
并检查 Container
中的代码以了解仅使用 Group
.