Java 使用表格在Libgdx中绘制重叠图像
基本上,我试图画一个空的健康栏作为一个图像,然后在它上面画一个实际的健康栏作为另一个图像,这样我就可以在需要更新时缩短实际的健康栏。这就是我到目前为止所做的:Java 使用表格在Libgdx中绘制重叠图像,java,android,libgdx,Java,Android,Libgdx,基本上,我试图画一个空的健康栏作为一个图像,然后在它上面画一个实际的健康栏作为另一个图像,这样我就可以在需要更新时缩短实际的健康栏。这就是我到目前为止所做的: TextureAtlas HUDatlas = new TextureAtlas(Gdx.files.internal("data/ui/HUDPack/textures.pack")); emptyPlayerHealthBar = new Image(HUDatlas.findRegion("empty-health
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);
但这将它们并排吸引。如何绘制它以使图像重叠(底部为空的健康栏,顶部为健康栏)?您可能应该使用Scene2D的
WidgetGroup
(或者,如果您没有使用布局管理器,例如Table
,Group
),例如
TextureAtlas HUDatlas=新的TextureAtlas(Gdx.files.internal(“data/ui/HUDPack/textures.pack”)
请注意,与libGDX的2.5D对象一样,只需在这些条上使用
.setPosition()
即可偏移这些条。此外,通过使用方法链接,您可以使libGDX代码更加简洁,尽管这主要是风格问题。我使用此代码在方框上放置菱形:
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();
你们需要用桌子吗?如果您需要尝试使用组,请将空的和正常的helth栏添加到其中,并将组添加到工作正常的表中,谢谢!我应该把它作为一个答案吗?@Springrbua这是一个很好的答案,解决了我的问题,thanks@Kintaro我很高兴能帮上忙
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();