【发布时间】:2014-05-17 22:19:13
【问题描述】:
我正在编写一个基于图块的小游戏。但是当我渲染它时,有时这些图块之间的小空间是可见的,并且(绿色)背景暴露出来(如视频中所示)。
Youtube video(出现绿线)
我想知道,是否有一些双缓冲技术可以解决这个错误,但我读过,双缓冲已经实现了。
【问题讨论】:
我正在编写一个基于图块的小游戏。但是当我渲染它时,有时这些图块之间的小空间是可见的,并且(绿色)背景暴露出来(如视频中所示)。
Youtube video(出现绿线)
我想知道,是否有一些双缓冲技术可以解决这个错误,但我读过,双缓冲已经实现了。
【问题讨论】:
请看我很久以前做的this forum thread。我已经在那里发布了我的解决方案作为答案。
这基本上是由于您的图块之间没有任何填充,所以有时,由于舍入,您会恰好在两个图块之间命中,这就是渲染背景的原因。解决方案是使用旧的 libgdx 工具之一,按照论坛主题中的说明为您的磁贴添加填充。
【讨论】:
这是我的最终解决方案:
for(Body b : bodies) {
b.setTransform(Math.round(b.getPosition().x*C)/C, Math.round(b.getPosition().y*C)/C, 0);
}
在从 Tiled 加载和创建块后运行它解决了这个问题。由于很少有块的位置(例如)9.99999999 或 9.00000001,因此将它们四舍五入即可解决。
【讨论】: