Cocos2d iphone 将CCLabel正好居中放置在CCSprite的中心 我想在CpScript的顶部添加一个标签,不管标签上的文本大小是多少,都应该准确地定位在精灵的中间/中心。
这是我的密码:Cocos2d iphone 将CCLabel正好居中放置在CCSprite的中心 我想在CpScript的顶部添加一个标签,不管标签上的文本大小是多少,都应该准确地定位在精灵的中间/中心。,cocos2d-iphone,Cocos2d Iphone,这是我的密码: self.background = [CCSprite spriteWithFile:@"LetterBrick.png"]; self.background.position = CGPointZero; [self addChild:self.background]; _letterLabel = [CCLabelTTF labelWithString:self.letter fontName:@"ChunkFive" fontSize:35];
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];
以及输出:
我只是想要低一点,呵呵
如您所见,x位置很好,但y位置太高:(试试这个
_letterLabel.anchorPoint = ccp(0.5f,0.5f);
_letterLabel.position = ccp(sprite.position.x, sprite.position.y);
默认情况下,CCLabel的锚点为(0.5f,0.5f)。如果您希望它正好位于其父对象的中心(在本例中为背景的精灵),只需将label的位置设置为精灵的中心
CGPoint backSize = background.contentSize;
[label setPosition:ccp(backSize.width / 2, backSize.height / 2)];
或与之相等
[label setPosition:ccpMult( ccpFromSize(background.contentSize), 0.5f )];
self.background=[CCSprite spriteWithFile:@“LetterBrick.png”];[self addChild:self.background];\u letterLabel=[cclabeltf labelWithString:self.letter fontName:@“ChunkFive”fontSize:35.0f];CGSize backSize=self.background.contentSize;\u background.position=ccp(backSize.width/2,backSize.height/2);[self addChild:_letterLabel];
不起作用:(尽量不要在评论中张贴代码。这很难阅读。无论如何,正如我所看到的,你将位置设置为背景,而不是标签。哦,对不起,刚才注意到,你没有将标签添加到背景中,但它们都有相同的父项。对我来说,这很不舒服。你可以为字母创建对象,它将包含背景。)默认情况下,这个标签将是空的,但是你可以添加方法SENTURE来改变它。它将使代码变得清晰,我在新的代码中成功地在Spice上获得了标签,在X位置是正确的,但是Y有点关闭。标签的底部在中间……(而不是它应该是何赫)。-实际上,我想要它的方式与wordfeud字母完全相同。(中间)确保背景精灵没有透明部分(从contentSize计算位置时可能会导致偏移)。我发现字体已损坏。它没有顶部填充。