如何去除平铺纹理之间的间隙?

2022-09-04 07:23:29

我正在使用LibGDX来制作平台游戏。我使用方形瓷砖作为平台,但是当它们被绘制时,它们中的一些在它们之间有间隙。当我放大/缩小或移动相机周围的间隙移动位置时。

更多详情:

  • 瓷砖是32x32,我尝试了32x32和64x64。
  • 图块相距 32 个像素(例如,第一个图块在 x=0 y=0、第二个图块为 x=32 y=0,依此类推)。
  • 间隙不是纹理伪像,因为我已经检查过了。
  • 我使用与填充。TexturePacker

我最好的猜测是,在将纹理转换为屏幕坐标时,这是一个问题,但不知道如何解决这个问题,我找不到任何解决方案。我已经检查并仔细检查了我的瓷砖尺寸的精度,并将它们排列在一起。

有没有人遇到同样的问题或知道如何解决它?


答案 1

我通过将类的字段设置为 .duplicatePaddingTexturePacker.Settingstrue

示例代码:

import com.badlogic.gdx.tools.texturepacker.TexturePacker;
import com.badlogic.gdx.tools.texturepacker.TexturePacker.Settings;

Settings settings = new Settings();
settings.maxWidth = 1024;
settings.maxHeight = 1024;
settings.duplicatePadding = true;

TexturePacker.process(settings, "source", "destination", "name");

答案 2

好吧,我是来拯救你的一天的!

该解决方案称为“边缘填充”。现在,如果您正在使用图块集,我可以向您保证这将起作用。

就个人而言,我正在使用Tiled,它允许我在磁贴集中调整边距和间距。这样做的唯一缺点是,您必须将GIMP与此插件一起使用:http://registry.gimp.org/node/26044

这个插件将允许您将边缘填充应用于您的瓷砖集,瞧!不再有丑陋的伪像。


推荐