2011-07-07 41 views
1

我新在cocos2d我创建了一个简单的例子需要帮助理解cocos2d中sprite的位置?

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];  

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

回答

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。

+0

不清楚...... –

+0

你能否解释一下你到底不清楚什么? – sergio

+0

ccp函数在做什么 –