0

我有一个简单的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];

我尝试更改标签上的锚点和位置,但我无法让文本仅以背景图像为中心。文本总是偏移。无论字体大小如何,我都希望文本居中。

4

2 回答 2

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);
于 2012-08-30T01:01:44.067 回答
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];
于 2014-01-06T14:05:33.377 回答