2012-01-13 38 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