【问题标题】:LibGDX - Rounded shaped textureLibGDX - 圆形纹理
【发布时间】:2017-08-31 20:51:58
【问题描述】:

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

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

简而言之,我有这个:

我想要这个:

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

【问题讨论】:

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

标签: opengl libgdx textures rounded-corners


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    这已经回答here。你必须实现自己的纹理,它使用多边形来实现你想要做的事情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-20
      • 2017-12-29
      • 1970-01-01
      • 1970-01-01
      • 2019-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多