2012-01-13 47 views
1

但是,我可能在脸上盯着答案。科科斯2D CCColor3b不可转让给property.color

我想给随机颜色分配一个CCLabelTTF字符串。当我尝试设置返回类型(CCColor3B *)并将其分配给CCLabelTTF.color = [self randomColor]时,我在方法和上述分配中都收到了不兼容的赋值错误。方法代码:

-(ccColor3B *)randomColor 
{ 
float r = arc4random() % 255; 
float g = arc4random() % 255; 
float b = arc4random() % 255; 
ccColor3B *color = {r,g,b,1}; 
return color; 
} 

我想我试图获得一个返回值是错误的类型,或指定一个只读的值,但CCColor3B信息是稀缺的。提前致谢。

回答

3

Cocos2d class documentation,财产CCSpritecolor不是指针(它是一个结构)

- (ccColor3B)颜色[读,写,分配]

你需要改变你的方法如下

-(ccColor3B)randomColor 
{ 
float r = arc4random() % 255; 
float g = arc4random() % 255; 
float b = arc4random() % 255; 
return ccc3(r,g,b); 
} 

你可以找到ccColor3B的定义,在该文档中为CCTypes.h(线43)

typedef结构_ccColor3B {
GLubyte R等
GLubyte g;
GLubyte b; } ccColor3B;

+0

谢谢,这回答了我的问题。 – Skybird 2012-01-13 22:02:31

+0

还有ccc3(r,g,b)的快捷方法。您的代码在使用ccColor3B没有的alpha组件时也有错误:{r,g,b,1}应该是{r,g,b} – LearnCocos2D 2012-01-14 15:16:26

+0

@ LearnCocos2D谢谢,我错过了,因为我正在关注来自OP的指针错误。当我在那里发布typedef时,我无法相信我错过了 – 2012-01-14 18:32:17