基本上,我正在尝试绘制一个空的健康栏作为图像,然后将其上方的实际健康栏绘制为另一个图像,以便在需要更新时可以缩短实际的健康栏。这就是我到目前为止所做的:
TextureAtlas HUDatlas = new TextureAtlas(Gdx.files.internal("data/ui/HUDPack/textures.pack"));
emptyPlayerHealthBar = new Image(HUDatlas.findRegion("empty-health-bar"));
playerHealthBar = new Image(HUDatlas.findRegion("health-bar"));
//Creating the table
table = new Table(skin);
table.debug();
table.setBounds(0, 0, Gdx.graphics.getWidth(), 50);
table.left();
table.top();
table.add(playerHealthBar);
table.add(emptyPlayerHealthBar);
stage.addActor(table);
但这会并排吸引他们。如何绘制它以使图像重叠(底部的空健康栏和顶部的健康栏)?
答案 0 :(得分:1)
我使用此代码在框上放置钻石:
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();
答案 1 :(得分:0)
您可能应该使用Scene2D的WidgetGroup
(或者,如果您没有使用布局管理器,例如Table
,Group
),例如
TextureAtlas HUDatlas = new TextureAtlas(Gdx.files.internal(“data / ui / HUDPack / textures.pack”));
emptyPlayerHealthBar = new Image(HUDatlas.findRegion("empty-health-bar"));
playerHealthBar = new Image(HUDatlas.findRegion("health-bar"));
// creating the group
WidgetGroup group = new WidgetGroup();
group.addActor(playerHealthBar);
group.addActor(emptyPlayerHealthBar);
// creating the table
table = new Table(skin);
table.setBounds(0, 0, Gdx.graphics.getWidth(), 50);
table.debug().left().top().add(group);
stage.addActor(table);
请注意,只需使用.setPosition()
就可以对这些条进行偏移,就像使用libGDX的2.5D对象一样。此外,您可以通过使用方法链来使您的libGDX代码更简洁,尽管这主要是风格问题。