2014-04-15 34 views
1

我試圖在LibGdx中創建一個進度條。我使用場景2D將元素放入屏幕(是加載屏幕)。我使用的是表格,我在其中放置了圖片,標籤(「加載...」)和進度條。Libgdx:將兩個圖像疊加到場景2D表中

進度條由兩個圖像組成。我的問題是我無法覆蓋這兩個圖像。我正在使用此代碼

stage.addActor(root); 
root.add(image).width(200).height(200); 
root.row(); 
root.add(new Label("Loading...", skin)); 
root.row(); 
root.add(progressBarBG).width(600); 
root.add(progressBarFG).height(30).width(30); 
root.pack(); 
Gdx.input.setInputProcessor(stage); 

但是progressBarBG和progressBarFG是其中一個。這是將一個放在另一個之上的方法?

ProgressBarBG和ProgressBarFG從紋理圖集加載。根是一個表。

謝謝。

+0

你可以使用'ProgressBar'(http://libgdx.badlogicgames.com /nightlies/docs/api/com/badlogic/gdx/scenes/scene2d/ui/ProgressBar.html) – Springrbua

+0

這是我第一次嘗試,但我無法完成它的工作。我無法調整旋鈕的大小,這是巨大的。你知道一個使用的例子嗎? – Killrazor

+0

不幸的是,我從來沒有用過它,但看看'ProgressBarStyle'類中的所有'Drawable's。 「旋鈕」應該在當前值的位置。嘗試爲該「旋鈕」使用不同的「Drawable」。就我所瞭解的你想要一個'ProgrsssBar',充滿了進步。所以'knobAfter'或'disabledBackground'就是你要找的東西。試試看,並讓我知道^^ – Springrbua

回答

4

由於Springrbua提到,最好使用ProgressBar這個。

雖然,要回答您的問題,您可以使用Group將圖像與scene2d重疊。只需將所有圖像添加到一個組中,然後將該組添加到所需的父級。如果您需要抵消組中的任何圖像,則可以使用image.setPosition(offsetX, offsetY)。下面是你的情況的一個例子:

stage.addActor(root); 
root.add(image).width(200).height(200); 
root.row(); 
root.add(new Label("Loading...", skin)); 
root.row(); 
//Use groups to overlay multiple images 
Group group = new Group(); 
progressBarBG.setWidth(600); 
progressBarFG.setSize(30, 30); 
group.addActor(progressBarBG); 
group.addActor(progressBarFG); 
root.add(group); 
root.pack(); 
Gdx.input.setInputProcessor(stage); 
+1

謝謝。最後,我瞭解瞭如何使用進度條,但重疊的圖像是我很快會使用的一個功能。 – Killrazor

0

我用這個代碼放置鑽石的圖像在一個盒子形象:

Image boxImage = new Image(Assets.instance.gifts.box); 
Image diamondImage = new Image(Assets.instance.gifts.diamond); 
Stack diamondBox = new Stack(); 
diamondBox.addActor(boxImage); 
diamondBox.addActor(diamondImage); 
tbl.add(diamondBox).width(20).height(20); 
tbl.row();