【发布时间】:2025-11-29 14:10:01
【问题描述】:
我正在尝试使用 cocos2d 2.1 和 Tiled 0.9.1 制作基于 tilemap 的游戏。游戏在模拟器上运行完美,但在设备上运行时,我的图块之间存在间隙(伪影线)。
请看截图。
差异是原始图块(直接取自图块集的 png)与 cocos2d 渲染的图块之间的差异(在 Photoshop 中制作)。如您所见,在模拟器中它们是 100% 相同的。然而,在设备上,cocos2d 似乎将瓷砖纹理垂直缩小了一点点。 1像素的条纹其实就是tileset中麻烦的tile上面的纹理。
知道是什么原因造成的以及如何解决它吗?
【问题讨论】:
-
你在使用着色器吗?我的意思显然是您的应用程序在某个地方,但我不熟悉您的特定库。如果您编写了自己的 GLSL 着色器,首先想到的是纹理坐标的精度。接下来是纹理环绕模式,但我认为模拟器和实际硬件在这方面会非常一致 - 精度是它们最大的差异。
-
@AndonM.Coleman 不,我没有使用任何自定义着色器,所以我认为所有着色器都来自 cocos2d。
-
@AndonM.Coleman 顺便说一句,模拟器和设备确实存在一些精度差异。例如,一个特定的计时器是 64 位浮点数,而另一个是 32 位浮点数,并且假设它始终是 32 位,从而导致我的代码出现问题。但是如果这个问题确实有精度问题,我真的不知道在哪里。
标签: ios iphone opengl-es cocos2d-iphone