Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用Scene2d和LibGDX将演员集中在一个组中?_Java_Layout_Libgdx_Scene2d - Fatal编程技术网

Java 如何使用Scene2d和LibGDX将演员集中在一个组中?

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

我正在使用LibGDX和Scene2d,我想创建一个类似下图所示的弹出窗口

到目前为止,我创建了一个表,并将背景设置为半透明颜色。然后我创建了一个白色背景的图像。此图像展开x,因此居中。现在,我想在图像中有一个居中的标签。为了覆盖这两个演员,我创建了一个小组,但我不知道如何在小组中居中。我该怎么做

这是我的密码:

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位置,它也不必垂直居中