2014-01-07 88 views
1

我在libgdx中製作遊戲,我想知道是否有一種方法將不同的圖層添加到按鈕中。例如,我用一個圖像創建一個按鈕,但是我希望在它上面有星星來表示該級別是否已完成。無論如何在libgdx中這樣做/任何人都可以指向正確的方向嗎?我四處搜尋,但havnt發現任何具體的事情。任何幫助將不勝感激!創建一個具有多層圖層的按鈕

回答

1

沒有這樣的按鈕。但是有ImageButton。你可以使用你的標準圖像,等級完成後,你會將整個圖像變成一個有星星的圖像。

另一個也許更強大的替代方案是創建自己的MultipleImageButton extends ImageButton。它不會只有一個圖像,而是一個圖像列表。您只需要覆蓋ImageButton.draw(Batch, float)方法並立即渲染所有圖像,而不是一個。

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