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