0

我几乎已经阅读了有关锚点和缩放的所有内容。当我缩放它时,我仍然不知道精灵位置发生了什么。

场景是这样的:

当我点击屏幕时,精灵的宽度将减少大约 %50,高度将增加大约相同的比例。然后它将恢复到正常规模。

id scaleUpAction =  [CCEaseInOut actionWithAction:[CCScaleTo actionWithDuration:.35 scaleX:0.5 scaleY:1.5] rate:1.0];
id scaleDownAction = [CCEaseInOut actionWithAction:[CCScaleTo actionWithDuration:.35 scaleX:1.0 scaleY:1.0] rate:1.0];
CCSequence *scaleSeq = [CCSequence actions:scaleUpAction, scaleDownAction, nil];
[self.boxShape runAction:scaleSeq];

我不明白为什么缩放会使精灵“移动”。

如果我在屏幕上的位置 (100, 100) 有一个大小为 40x60 的精灵,当我缩小它时,它会向左移动。为什么?

谢谢。

4

2 回答 2

0

一般来说,当缩放空间时,总是有一个点留在它的位置上,其他点移动。对于 CCNode,此点是锚点。因此,选择节点上要保留的点并将其设为锚点

于 2013-03-14T13:35:19.330 回答
0

可能图像的锚点不在图形的质心。在下一张图片中,您应该将锚点设置为红点,ccp (0.85, 0.5) 大约!

图片:锚点,月亮,质心

如果您的锚点位于中心 (0.5, 0.5),当上一个图形水平缩放时,它将向左移动(仅在视觉上!)。

这是你的问题吗?

于 2013-03-15T12:05:54.280 回答