簡體   English   中英

在Libgdx / Scene2D SelectBox中顯示圖像

[英]Show images in Libgdx/Scene2D SelectBox

我有一個SelectBox,它獲取基本上封裝圖像的對象列表和一些更多細節。 而不是顯示文本我想顯示TextureRegion。

我該怎么做? 據我所知,SelectBox默認顯示toString()。

所以我的班級看起來像那樣(有點愚蠢):

public class Image
{
    private Vector2 position;
    private TextureRegion sprite;

    public Image(Vector2 position) {...}

    public void render(SpriteBatch batch) { batch.draw{this.sprite, this.position.x ...}

    public String toString() { return "Position: " + position; }
}

SelectBox<Image> selectBox = ... // fetch data

我需要創建自己的SelectBoxStyle嗎? 如果是這樣,我怎么能覆蓋它來繪制TextureRegion而不是Text?

SelectBox使用List來顯示其值。 List使用此方法轉換其子項:

protected String toString (T obj) {
    return obj.toString();
}

這不是您通常的包含和管理其子代的actor:它基本上有一個數據容器列表,將它們轉換為字符串(同時允許您通過擴展類來覆蓋其轉換方法)。 渲染方法不期望數據容器是actor:它只是使用字體來呈現它們被轉換成的文本。 您基本上必須實現自定義選擇actor,可能使用ScrollPaneTable (或其他容器), TextButton / ImageTextButton存儲當前值並打開菜單。

但是,您可以嘗試使用VisUI擴展。 其菜單小部件具有類似的下拉行為,允許您為每個菜單項添加圖標。 此外, VisUI 1.0.0添加了強大的ListView小部件,它允許您創建自定義actor以顯示值集合。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM