Java 如何使用Scene2d和LibGDX将演员集中在一个组中?
我正在使用LibGDX和Scene2d,我想创建一个类似下图所示的弹出窗口 到目前为止,我创建了一个表,并将背景设置为半透明颜色。然后我创建了一个白色背景的图像。此图像展开x,因此居中。现在,我想在图像中有一个居中的标签。为了覆盖这两个演员,我创建了一个小组,但我不知道如何在小组中居中。我该怎么做 这是我的密码:Java 如何使用Scene2d和LibGDX将演员集中在一个组中?,java,layout,libgdx,scene2d,Java,Layout,Libgdx,Scene2d,我正在使用LibGDX和Scene2d,我想创建一个类似下图所示的弹出窗口 到目前为止,我创建了一个表,并将背景设置为半透明颜色。然后我创建了一个白色背景的图像。此图像展开x,因此居中。现在,我想在图像中有一个居中的标签。为了覆盖这两个演员,我创建了一个小组,但我不知道如何在小组中居中。我该怎么做 这是我的密码: Table table = new Table(); table.top(); table.setFillParent(true); table.setBackground(getC
Table table = new Table();
table.top();
table.setFillParent(true);
table.setBackground(getColoredBackground(color));
labelStyle = new Label.LabelStyle(font, fontColor);
label = new Label(message, labelStyle);
Image image = new Image(whiteBackground);
image.setSize(table.getWidth() - padding, label.getHeight() + extraHeight);
Group group = new Group();
group.setSize(image.getWidth(), image.getHeight());
group.addActor(image);
group.addActor(label);
table.add(group).expandX().padTop(padTop);
该小组有自己的坐标系统。这意味着,例如,当您将演员位置设置为(0,0),然后将其添加到实际位于(100100)位置的组中时,对象将位于相对于舞台的(100100)位置 您只需设置:
label.setPosition( group.getWidth() / 2f - label.getWidth() / 2f, group.getHeight() / 2f - label.getHeight() / 2f );
设置组后大小。请记住,设置演员的位置是定义其左下角位置,这就是为什么还需要减去标签宽度/高度的一半
当然,您可以修改y位置,它也不必垂直居中