需要帮助理解cocos2d中精灵的位置?

时间:2011-07-07 07:06:46

标签: iphone cocos2d-iphone

我是cocos2d的新手,我创建了一个简单的例子

  CGSize winSize = [[CCDirector sharedDirector] winSize];
    CCSprite *player = [CCSprite spriteWithFile:@"Player.jpg" 
                                           rect:CGRectMake(0, 0, 27, 40)];
    player.position = ccp(player.contentSize.width/2, winSize.height/2);
    [self addChild:player];     

但我不清楚精灵的位置如何管理它

1 个答案:

答案 0 :(得分:5)

您的代码将创建一个精灵并将其放置在父节点中,以使其左下角位于ccp(player.contentSize.width/2, winSize.height/2)

如果你想知道为什么你的精灵没有相对于你提供的坐标居中,答案是它位于左下角,而不是精灵中心。

您可以通过定义精灵的anchorPoint属性来调整此行为,如下所示:

 player.anchorPoint = ccp(0.5,0.5);
 player.position = ...

编辑:

您可以将锚点视为精灵的“重心”:纹理以其为中心,任何缩放或其他类型的变换都将相对于它。

如果锚点设置为(0,0),则它与左下角一致(默认);如果它是(0.5,0.5)那么它正好在精灵的中间(50%宽度,50%高度)。它的坐标不是点,而是精灵内的相对位移;坐标可以从0.0到1.0。