[英]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,可能使用ScrollPane
的Table
(或其他容器), TextButton
/ ImageTextButton
存儲當前值並打開菜單。
但是,您可以嘗試使用VisUI
擴展。 其菜單小部件具有類似的下拉行為,允許您為每個菜單項添加圖標。 此外, VisUI 1.0.0
添加了強大的ListView
小部件,它允許您創建自定義actor以顯示值集合。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.