我是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];
但我不清楚精灵的位置如何管理它
答案 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。