在cocos2d CCLabel上改变颜色

时间:2010-11-07 03:30:31

标签: iphone cocos2d-iphone

我有一个可变的CCLabel数组。当我创建标签数组时,我使用以下方法将标签的颜色设置为黑色:

label.color = ccc3(0,0,0);

在各个点我想改变给定标签的颜色。

我尝试了以下方法,但没有成功。

    -(void)updateLabel:(CCLabel*)l{
        [l setColor: ccc3(1.0,1.0,0.0)];
  }

我知道我有一个指向标签的有效指针,因为如果我将方法更改为

[l setString:@"test"];

正确更改标签。但颜色不会改变。我没有在文档中看到任何建议,一旦设置颜色是不可变的。那么有谁知道可能会发生什么?

3 个答案:

答案 0 :(得分:1)

它不需要浮点数,它需要字节值。所以以下内容将起作用:

label.color = ccc3(255, 255, 0); 

or 

[label setColor: ccc3(255, 255, 0)];

答案 1 :(得分:0)

如果您查看CCLabel超类CCSprite的文档,您会看到:

144 http://www.cocos2d-iphone.org/api-ref/0.99.0/_c_c_sprite_8h_source.html

这意味着一旦创建了一个对象,就无法设置color,它是严格只读的。

答案 2 :(得分:-1)

//create Label like this
CCLabelBMFont *lblInfo = [CCLabelBMFont labelWithString:@"Multi Color Label" fntFile:@"SSPro.fnt"];

then, you can Access the character using Index path.

  for (i=starting index; i<ending index; i ++) {

        CCSprite *charSprite = (CCSprite *)[[lblInfo children] objectAtIndex:i];
        charSprite.color = [CCColor redColor];
    }
set or change the color of character.