簡體   English   中英

如何使用Scene2d和LibGDX集中一個組中的actor?

[英]How to center actors in a group with Scene2d and LibGDX?

我正在使用LibGDX和Scene2d,我想創建一個看起來像下圖所示的彈出窗口。

到目前為止,我創建了一個表格,並將背景設置為半透明顏色。 然后我創建了一個白色背景的圖像。 此圖像展開x,因此它居中。 現在我想在圖像中心放置一個標簽。 為了覆蓋這兩個演員,我創建了一個小組,但是我無法找到如何將小組集中在一個小組中。 我怎樣才能做到這一點?

scene2d的例子

這是我的代碼:

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);

該小組擁有自己的坐標系。 這意味着當您將actor位置設置為(0,0),然后將其添加到實際位於(100,100)位置的組時, 該對象將位於相對於舞台的(100,100)位置

您需要做的就是設置:

    label.setPosition( group.getWidth() / 2f - label.getWidth() / 2f, group.getHeight() / 2f - label.getHeight() / 2f );

設置大小后。 請記住,設置actor的位置我們正在定義它的左下角位置,這就是為什么你還需要減去標簽寬度/高度的一半

當然,您也可以修改它不必垂直居中的y位置

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM