Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opengl LibGDX-圆形纹理_Opengl_Libgdx_Textures_Rounded Corners - Fatal编程技术网

Opengl LibGDX-圆形纹理

Opengl LibGDX-圆形纹理,opengl,libgdx,textures,rounded-corners,Opengl,Libgdx,Textures,Rounded Corners,我想知道是否可以在LibGDX中为纹理赋予形状 特别是,我有一个纹理,我想用它做一个按钮。为此,我想给它一个圆角形状 简而言之,我有以下几点: 我想要这个: 我已经读过一些类似的问题,并给出了明确的答案。有没有人经历过这个问题并找到了一个明智的解决方案 这已经得到了回答。您必须实现自己的纹理,该纹理使用多边形来实现您试图实现的目标。使用贝娄方法创建圆形纹理图像,然后向其添加文本 public static Texture createPixmapRoundCornerRect(Color c

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

特别是,我有一个纹理,我想用它做一个按钮。为此,我想给它一个圆角形状

简而言之,我有以下几点:

我想要这个:


我已经读过一些类似的问题,并给出了明确的答案。有没有人经历过这个问题并找到了一个明智的解决方案

这已经得到了回答。您必须实现自己的纹理,该纹理使用多边形来实现您试图实现的目标。

使用贝娄方法创建圆形纹理图像,然后向其添加文本

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

纹理始终是矩形,但您可以在源图像(alpha通道)中放置透明度,并使用启用的混合(在SpriteBatch中)绘制它,以获得所描述的效果。我认为这是非常基本的,每个人都理所当然地知道这一点,所以在任何文档或教程中都没有提到。我当然知道--我想知道我是否可以动态地做到这一点!因为我需要为其他用户绘制矩形图像,但我需要为菜单a将其四舍五入?您可以在禁用混合的情况下绘制它以绘制完整的矩形。