【问题标题】:Libgdx Pixellated GUI EffectLibgdx 像素化 GUI 效果
【发布时间】:2014-05-16 00:55:39
【问题描述】:

在 LibGDX 中,我目前正在尝试实现像素化 GUI 的效果,这意味着按钮是像素化的,就像 8 位主题一样。

当我制作我的 GUI 元素(例如 TextButton)时,我使用的是小图像,例如 34x16 像素,但我正在以较大的分辨率渲染它们,例如 1920x1080。以高分辨率渲染如此小图像的最佳方法是什么?

我的想法是使用stage.setViewport(WIDTH,HEIGHT),并将宽度和高度设置为按比例缩小的分辨率,因此 gui 元素不会那么大。这可行,但是当添加元素时会出错。

这是我目前的舞台/桌子,使用按比例缩小的分辨率。我正在使用这样的表格添加小部件:

    table.add(playButton);
    table.row();
    table.add(title);

但正如您所看到的,table.row() 使行太大,可能适合更大分辨率的行。有什么办法可以改变行造成的差距?我原以为差距会为零,通过使用table.add().pad() 你可以改变差距,但我没有这样做。

任何帮助将不胜感激。

【问题讨论】:

    标签: java user-interface libgdx scene2d


    【解决方案1】:

    我想说不要担心扩大它们并使虚拟分辨率更大。如果您想在缩放时看到仍然像素化的图片,请使用纹理过滤器。对于您的情况,您想使用最近的过滤器。像这样使用它:

    yourTexture.setFilter(TextureFilter.Nearest, TextureFilter.Nearest);

    其中 yourTexture 是您拥有所有位图和皮肤元素的纹理。如果您使用的是 texturePacker,那么您也可以在打包之前指定过滤器。或者直接打开 .pack 文件,在顶部您会看到过滤选项,然后将其编辑为 Nearest。

    【讨论】:

    • "如果您想在缩放时看到图片仍然像素化,请使用纹理过滤器" - 我将如何缩放它?图像嵌套在 TextButton 中,所以我不确定如何。
    • Libgdx 的 Table 类为您完成所有缩放。只需使用更大的视口。
    【解决方案2】:

    九补丁

    这是所有应用程序中的常见问题。为了克服这个问题,使用可以安全地调整部分大小的图像。它们被称为九补丁。

    这是一个很好的Tutorial,关于在 libgdx 中使用它们。


    距离场字体

    虽然您在这里没有提到它,但您也会发现字体大小(像素化字体)是一个问题。为此使用了Distance Field Fonts

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-02
      • 2017-10-08
      • 2011-01-16
      • 1970-01-01
      相关资源
      最近更新 更多