我有一个正在缩放的精灵(画布)。画布有一个面具。问题是简单的缩放 ( scaleX=newScale; scaleY=newScale;
) 占据了蒙版下方蒙版下的画布部分。所以我需要在缩放后移动画布,使蒙版下的画布点保持在同一个地方。我正在尝试执行以下操作:
var deltaScale = newScale / scale;
//w and h are width and height of mask
canvas.scaleX = newScale;
canvas.scaleY = newScale;
canvas.x += (canvas.x + w/2) - (canvas.x + w/2) / deltaScale;
canvas.y += (canvas.y + h/2) - (canvas.y + h/2) / deltaScale;
仍然在那个中心点之后不要留在同一个地方。有人可以提示我在缩放后应该如何移动画布吗?
PS:如果有帮助的话,画布的宽度和高度非常大(大约 25000)。
UPD:带有遮罩的画布被添加到 Sprite 上,遮罩与父精灵具有相同的大小,canvas.x
并且canvas.y
是负数。