Libgdx平铺之间的间隙

Libgdx平铺之间的间隙,libgdx,Libgdx,因此,我对平铺贴图有一个问题,我的贴图有间隙/纹理出血,我阅读了关于这个问题的其他问题,但我无法得到一个有效的问题。 我使用的是已经制作好的雪碧片,其中包括所有的瓷砖,那么enyone知道解决方案吗?我可以制作,而且我不需要从雪碧片上切割60块瓷砖?使用纹理过滤器最近的非线性因为线性用户4个周围的纹理来计算实际颜色,所以当它位于瓷砖的边界上时,它将生成间隙。您可以在此处阅读有关TextureFilter的内容: 你可以这样设置: Sprite sprite; //now yo

因此,我对平铺贴图有一个问题,我的贴图有间隙/纹理出血,我阅读了关于这个问题的其他问题,但我无法得到一个有效的问题。
我使用的是已经制作好的雪碧片,其中包括所有的瓷砖,那么enyone知道解决方案吗?我可以制作,而且我不需要从雪碧片上切割60块瓷砖?

使用纹理过滤器最近的线性因为线性用户4个周围的纹理来计算实际颜色,所以当它位于瓷砖的边界上时,它将生成间隙。您可以在此处阅读有关TextureFilter的内容:

你可以这样设置:

    Sprite sprite;

    //now you are initializing the sprite...

    sprite.getTexture().setFilter(TextureFilter.Nearest, TextureFilter.Nearest);
当然,如果您有权访问纹理,可以调用setFilter()direct on texture。如果您不这样做,因为您从文件创建了平铺贴图,您可以尝试在平铺上迭代,并为每个平铺纹理设置适当的过滤器:

    Iterator<TiledMapTileSet> iter = tiledMap.getTileSets().iterator();
    while(iter.hasNext())
    {
        Iterator<TiledMapTile> iterTile = iter.next().iterator();

        while(iterTile.hasNext())
        {
            iterTile.next().getTextureRegion().getTexture().setFilter(...);
        }
    }
Iterator iter=tiledMap.getTileSets().Iterator();
while(iter.hasNext())
{
迭代器iterTile=iter.next().Iterator();
while(iterTile.hasNext())
{
iterTile.next().getTextureRegion().getTexture().setFilter(…);
}
}

你也可以在TexturePacker中挤出你的图集-它将使边界上的每个像素加倍,因此颜色混合不会影响它

,但我不使用图集,我只有sprite Sheets的平铺贴图文件和png,然后将其设置为最接近的.png纹理过滤器-我已经编辑了我的答案,添加了一个代码如何操作,但是当我设置sprite_sheet.png过滤器时,我需要做什么?我如何将其设置为平铺?因为我正在使用平铺制作地图。我再次编辑了我的答案,因为注释中没有代码格式。“在平铺上迭代”不起作用,仍然存在差距