使用表格在Libgdx中绘制重叠图像

时间:2014-01-24 15:30:04

标签: java android libgdx

基本上,我正在尝试绘制一个空的健康栏作为图像,然后将其上方的实际健康栏绘制为另一个图像,以便在需要更新时可以缩短实际的健康栏。这就是我到目前为止所做的:

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

但这会并排吸引他们。如何绘制它以使图像重叠(底部的空健康栏和顶部的健康栏)?

2 个答案:

答案 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(或者,如果您没有使用布局管理器,例如TableGroup),例如

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代码更简洁,尽管这主要是风格问题。