0

我正在使用基本的 Xcode 模板项目。在 HelloWorldLayer 中,我添加了一个方形 CCSprite 作为位置为 CGPointZero 的子节点。我还添加了一个 CCLayerColor 子类,其中位置 CGPointZero 作为子节点。绘制时,精灵的中心点与屏幕的左下角对齐。然而,图层的左下角与屏幕的左下角对齐。

为什么精灵和图层的对齐方式不同?我希望它们的中心点都与屏幕的左下角对齐,因为它们的位置都设置为(0,0)。

iPhone模拟器显示

编辑 - 更多信息:抱歉,如果屏幕截图难以破译。精灵使用的是 icon-small-50.png。该图层的内容大小设置为 (100,100)。注意我尝试将图层的位置设置为 (10,10) 以确保其左下角实际上与屏幕的左下角对齐(当位置为 (0,0) 时)。

编辑 - 更多信息:刚刚在 CCNode.h 中注意到这一点:

// If YES, the Anchor Point will be (0,0) when you position the CCNode.
// Used by CCLayer and CCScene
BOOL ignoreAnchorPointForPosition_;

我认为这可以解释。

4

1 回答 1

1

CCSprite 的默认锚点为 (0.5,0.5),它是精灵的中心。这样做是因为精灵往往是您可以四处移动的较小对象,而不是通常是屏幕的图层。

旋转 sprite 时,将注册点放在中心是有利的,因为您通常希望基于 sprite 的中心进行旋转。

旋转 CCLayer 并不常见,因为它通常不是您四处移动的东西,而是您通常将精灵添加到的东西,例如背景图像。

于 2013-01-10T05:23:30.083 回答