LibGDX - 圆形纹理图片

5

我想知道在LibGDX中是否可以为纹理赋予形状。

具体而言,我有一个纹理,我想把它制作成一个按钮。为此,我想赋予它圆角形状。

简而言之,我有这样的东西:

enter image description here

我想要这个:

enter image description here

我已经阅读了一些类似的问题,但没有清晰的答案。有人遇到过这个问题并找到了一个聪明的解决方案吗?


3
纹理始终是一个矩形,但您可以在源图像中加入透明度(alpha通道),并启用混合(在SpriteBatch中)以获得所描述的效果。我认为这是非常基础的知识,人们普遍认为每个人都知道,因此在任何文档或教程中都没有提到。 - Tenfour04
我当然知道 -.- - Roman Dev
我在想我是否可以动态地做到这一点!因为我需要矩形图像供其他用户使用,但是我需要将其变成圆形以用于菜单。 - Roman Dev
那么一个9-patch是什么? - genpfault
您可以关闭混合功能来绘制完整的矩形。 - Tenfour04
2个回答

3
使用以下方法创建圆角纹理图像,然后在其上添加文本。
public static Texture createPixmapRoundCornerRect(Color color, int width,
            int height, int radius) {
        Pixmap pixmap = new Pixmap(width, height, Format.RGBA8888);
        pixmap.setColor(color);
        pixmap.fillCircle(radius, radius, radius);
        pixmap.fillCircle(width - radius, radius, radius);
        pixmap.fillCircle(width - radius, height - radius, radius);
        pixmap.fillCircle(radius, height - radius, radius);
        pixmap.fillRectangle(0, radius, width, height - (radius * 2));

        pixmap.fillRectangle(radius, 0, width - (radius * 2), height);
        Texture pixmaptex = new Texture(pixmap);
        pixmap.dispose();
        return pixmaptex;
    }

0

这个问题已经在这里得到了解答。你需要实现自己的纹理,使用多边形来实现你想要做的事情。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接