我正在使用 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 后置摄像头位置。
这些浮点问题是导致接缝的原因似乎合乎逻辑吗?仅对目标值进行下限/舍入是否安全,因为无论如何您都无法将其闪烁到半个像素。
谢谢!