繁体   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