创建一个包含多个图层的按钮

时间:2014-01-07 03:57:48

标签: java android libgdx

我在libgdx中制作游戏,我想知道是否有办法让按钮有不同的图层。例如,我拍摄一个图像创建一个按钮,但我希​​望在它上面有星星来指示水平是否已完成。无论如何在libgdx中这样做/有人能指出我正确的方向吗?我四处搜寻但是却找不到具体的东西。任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

没有这样的按钮。但是有ImageButton。您可以使用标准图像,当关卡完成后,您将整个图像更改为其上有星星的图像。

另一个可能更强大的替代方案是创建自己的MultipleImageButton extends ImageButton。它不仅会有一个图像,而是一个图像列表。您只需覆盖ImageButton.draw(Batch, float)方法并立即渲染所有图像,而不只是一个。

答案 1 :(得分:0)

我遇到了同样的问题,没有人解决问题:

public class MultipleImageButton extends ImageButton {

private Texture type;
private float h;
private float w;

public MultipleImageButton(Skin skin, String styleName, Texture type) {
    super(skin, styleName);
    this.type = type;
    h = type.getHeight();
    w = type.getWidth();
}

@Override
public void draw(Batch batch, float parentAlpha) {
    super.draw(batch, parentAlpha);

    if (super.isPressed()) {
        batch.draw(
                type,
                super.getX() + super.getWidth() / 2 - w / 2,
                super.getY() + super.getHeight() / 2 - h / 2
                        + super.getStyle().pressedOffsetY, w, h);

    } else {
        batch.draw(type, super.getX() + super.getWidth() / 2 - w / 2,
                super.getY() + super.getHeight() / 2 - h / 2, w, h);
    }

}

public void resize(float height, float width) {
    this.h = height;
    this.w = width;
}
}