使用相机进行布线导致接缝(由于浮点错误?)

时间:2011-08-24 04:23:54

标签: flash floating-point 2d rounding blit

我正在使用blitting处理t​​ilemap实现(在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相机位置后。

这些浮点问题是导致接缝的原因似乎合乎逻辑吗?只是对目标值进行平铺/舍入是否安全,因为无论如何都不能将半个像素点亮。

谢谢!

0 个答案:

没有答案