我正在编写一个小游戏,它基于磁贴。但是当我渲染它时,有时候这些瓷砖之间的小空间是可见的,并且(绿色)背景被曝光(如视频中所示)。
Youtube video(出现绿线)
我想知道,如果有一些双缓冲技术可以解决这个问题,但我已经读过,双缓冲已经实现了。
答案 0 :(得分:1)
请看一下我很久以前的this forum thread。我在那里发布了我的解决方案。
这主要是因为你的瓷砖之间没有任何填充,所以有时候,由于四舍五入,你会精确地击中两个瓷砖之间,这就是渲染背景的原因。解决方案是使用旧的libgdx工具之一,如论坛帖子中所述,为您的磁贴添加填充。
答案 1 :(得分:1)
这是我的最终解决方案:
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,因此舍入它们解决了它。