我正在使用blitting处理tilemap实现(在Flash中,但我不认为它与语言相关)。我遇到的问题是,当我平移相机时,根据位置开始可以看到1个像素接缝。
以下是我如何确定我的blitting点:
var destination : Point = _position.toPoint();
if (camera != null)
{
destination.x -= camera.position.x;
destination.y -= camera.position.y;
}
// the actual blit, not really relevant:
canvas.bitmapData.copyPixels(_bitmapData, _sourceRectangle, destination, null, null, true);
当我滚动相机时,我可以看到位置变得非常不稳定。这里有一些痕迹:
pre-camera: 443 534
post-camera: 396.3333333333333 294
pre-camera: 476 534
post-camera: 429.3333333333333 294
pre-camera: 509 534
post-camera: 462.3333333333333 294
接缝仅出现在.3333333333相机位置后。
这些浮点问题是导致接缝的原因似乎合乎逻辑吗?只是对目标值进行平铺/舍入是否安全,因为无论如何都不能将半个像素点亮。
谢谢!