1

我正在使用 blitting 实现 tilemap(在 Flash 中,但我认为它与语言无关)。我遇到的问题是,当我平移相机时,根据位置的不同,1 像素的接缝开始变得可见。

以下是我决定我的转折点的方式:

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 后置摄像头位置。

这些浮点问题是导致接缝的原因似乎合乎逻辑吗?仅对目标值进行下限/舍入是否安全,因为无论如何您都无法将其闪烁到半个像素。

谢谢!

4

0 回答 0