用于iPhone绘图行为的基本Cocos2d

时间:2013-01-10 05:16:48

标签: cocos2d-iphone ccsprite cclayer

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

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

iPhone simulator display

修改 - 更多信息:抱歉,如果屏幕截图难以破译。精灵正在使用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_;

我认为这解释了它。

1 个答案:

答案 0 :(得分:1)

CCSprite的默认anchorPoint为(0.5,0.5),它是精灵的中心。它是这样做的,因为精灵往往是你移动的较小的物体,而不是通常是一个屏幕的层。

在旋转精灵时,将注册点放在中心是有利的,因为您通常希望根据精灵的中心进行旋转。

旋转CCLayer并不典型,因为它通常不是你移动的东西,而是你经常添加精灵的东西,比如背景图像。