我有一个可变的CCLabel数组。当我创建标签数组时,我使用以下方法将标签的颜色设置为黑色:
label.color = ccc3(0,0,0);
在各个点我想改变给定标签的颜色。
我尝试了以下方法,但没有成功。
-(void)updateLabel:(CCLabel*)l{
[l setColor: ccc3(1.0,1.0,0.0)];
}
我知道我有一个指向标签的有效指针,因为如果我将方法更改为
[l setString:@"test"];
正确更改标签。但颜色不会改变。我没有在文档中看到任何建议,一旦设置颜色是不可变的。那么有谁知道可能会发生什么?
答案 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.