libGDX中的Tiles沿着Tiles闪烁

时间:2016-11-07 01:03:32

标签: java camera libgdx

我正在制作一个带有基于图块的地图的简单平台游戏。然而,当相机移动时会出现白色闪烁,我认为这是沿着瓷砖边界发生的,但很难分辨,因为它们会快速闪烁。

我尝试过:

  • 在我的Tileset中添加填充。我在每个瓷砖周围都有4px填充,所以它不是图像渗色。

  • 将TextureFilter设置为最近。从来没有在其他任何事情上,所以凌力尔特不是罪魁祸首。

  • 将相机位置投射到int。虽然这不能解决闪烁问题,但也会使我的相机不稳定,所以这是最糟糕的解决方案。

  • 将config.useCPUSync设置为false,将config.vSync设置为true。虽然我已将vSync设置为true,但我无法将CPUSync设置为false,因为据我所知,这不再是一个选项。我尝试时遇到编译时错误。

我只是通过调用TiledMapRendere.render()显示地图,所以我不知道我的Tileset或我的Nearest TextureFilter中的填充是否实际上正确应用,但这是我渲染过程中唯一可能出现的问题我能想到。

还有其他想法吗?

编辑: 所以我尝试手动渲染,我学到了一些东西。

  1. 即使我将每个图块的每个坐标都投射到相机中的int和每个坐标,仍然会闪烁,所以这绝对不是答案。然而,我然后将每个tile上的TextureFilter设置为Linear,并且DID解决了闪烁,但我不喜欢纹理看起来如此,所以它不是真正的解决方案。

1 个答案:

答案 0 :(得分:0)

我花了很长时间才弄清楚:我看到的其他地方都给出了我上面尝试过的解决方案。

我最终做的是将外部像素挤出1,就像我预期的那样模糊。我认为这很有效,因为当缩放平铺时,应用程序有时必须选择是使用外部像素还是透明像素(我的边距)并选择透明像素。所以现在,每个图块周围的边距只是相同颜色的另一个像素,所以如果选择该像素,它对我们看起来是一样的。