中心CCLabel正好位于CCSprite的中心

时间:2012-08-31 04:22:02

标签: cocos2d-iphone

我想在CCSprite的顶部添加一个标签,无论标签上的文本大小是多少,它都应该精确地位于精灵的中间/中心。

现在是我的代码:

self.background = [CCSprite spriteWithFile:@"LetterBrick.png"];
    self.background.position = CGPointZero;
    [self addChild:self.background];
    _letterLabel = [CCLabelTTF labelWithString:self.letter fontName:@"ChunkFive" fontSize:35];    
    [self addChild:_letterLabel];

和输出:

enter image description here 我只是希望它低一点呵呵。

正如您所见,x位置很好,但y位置太高。 :(

2 个答案:

答案 0 :(得分:1)

CCLabel的anchorPoint默认为(0.5f,0.5f)。如果你想让它在它的父母的中心(你的精灵有背景,在这种情况下),只需将标签的位置设置为精灵的中心

CGPoint backSize = background.contentSize;
[label setPosition:ccp(backSize.width / 2, backSize.height / 2)];

或等于它

[label setPosition:ccpMult( ccpFromSize(background.contentSize), 0.5f )];

答案 1 :(得分:0)

试试这个

_letterLabel.anchorPoint = ccp(0.5f,0.5f);
_letterLabel.position = ccp(sprite.position.x, sprite.position.y);