5

我在 LibGDX 中拉伸精灵有问题。

我在游戏中有一个天空的 png 文件(1x1000 像素),我想做 1000x1000 像素

sprite.setSize(pixelWidth,pixelHeight);

编辑:这是我要拉伸的图像-天空。如您所见,它从顶部到底部几乎没有渐变。我想让它的宽度为 1000 像素。我希望图像的宽度有颜色变化。

但我得到了这个奇怪的结果: 图片 图片

你可以看到宽度有渐变,即使有线条,但没有理由,因为我正在缩放 1px 图像......

奇怪的是,在其他电脑和手机上一切正常……但我不认为问题出在我的电脑上!?

我不知道该尝试什么...有什么想法吗?

对不起,如果我没有很好地解释它.. 对不起我的英语不好

最终:它来自过滤。我将过滤器从线性更改为最近,一切都很好

4

2 回答 2

2

我不明白你的问题到底是什么,但是缩放精灵的好方法是这样的

sprite.setSize(scrw * 0.16f, scrw * 0.16f);

这里 scrw 是你的视口的宽度

于 2013-10-03T15:41:38.920 回答
0

我认为这只是因为插值而发生。当您的精灵和您抓取的纹理区域的宽度为 1 px 并且您将精灵缩放到屏幕宽度时,GPU 将插入一些颜色值,并将使用纹理中相邻像素的颜色。

您可以尝试将渐变更改为 3 像素宽的纹理,然后从 3 像素的中间抓取 1 像素宽的精灵。GPU 仍将插入颜色并使用邻域的像素颜色,但由于它们相同,因此看起来还不错。

这是您的纹理区域目前的样子及其抓取区域的图像,以及纹理区域的外观及其抓取区域:

在此处输入图像描述

于 2013-10-04T14:24:49.520 回答