将CCLabelTTF置于CCSprite上

时间:2012-08-28 16:11:01

标签: cocos2d-iphone text-alignment cclayer

我有一个简单的CCLayer子类,其中一个圆圈作为背景图像。我还有一个CCLabelTTF作为子节点。 如何将标签的文字居中放在背景图片上?

这就是我所拥有的:

// in MyCCLayer's init method
CCSprite *backgroundImage = [CCSprite spriteWithFile:@"circle.png"];
[self addChild:backgroundImage];
self.contentSize = backgroundImage.contentSize;

CCLabelTTF *label = [CCLabelTTF labelWithString:@"0" 
                                         dimensions:self.contentSize 
                                          alignment:UITextAlignmentCenter 
                                           fontName:@"Arial" 
                                           fontSize:32];
[self addChild:label];

我已经尝试更改了标签上的anchorPoint和位置,但我无法将文本放在背景图像的中心位置。文本始终是偏移的。无论字体大小如何,我都希望使用居中文本。

2 个答案:

答案 0 :(得分:2)

我假设你的代码看到你的标签最终落在了圆圈的底部?如果您创建如下标签,它应该适合您。

CCLabelTTF *label = [CCLabelTTF labelWithString:@"0" fontName:@"Arial" fontSize:32];
label.anchorPoint = ccp(0.5, 0.5);
label.position = ccp(backgroundImage.contentSize.width/2, backgroundImage.contentSize.height/2);

答案 1 :(得分:0)

  try this code:

  CCSprite *backgroundImage = [CCSprite spriteWithFile:@"circle.png"];
  [self addChild:backgroundImage];

  backgroundImage.position=ccp(winSize.width/2,winSize.height/2);

  CCLabelTTF *label = [CCLabelTTF labelWithString:@"0" 
                                     dimensions:self.contentSize 
                                      alignment:UITextAlignmentCenter 
                                       fontName:@"Arial" 
                                       fontSize:32];
  label.position=backgroundImage.position;
  [self addChild:label];