Я работаю над реализацией тайлакарты с блиттингом (во 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 после камеры.
Кажется ли логичным, что эти проблемы с плавающей точкой являются причиной швов?Безопасно ли просто указывать / округлять целевые значения, так как в любом случае вы не можете увеличить до половины пикселя.
Спасибо!