Cocos 2D CCColor3b не присваивается свойству - PullRequest
1 голос
/ 13 января 2012

Я, вероятно, смотрю ответ в лицо, однако.

Я хочу назначить случайный цвет для строки 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 недостаточна. Заранее спасибо.

1 Ответ

3 голосов
/ 13 января 2012

Из документации класса Cocos2d , свойство color из CCSprite не является указателем (это структура)

- (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 struct _ccColor3B {
GLubyte r;
GLubyte г;
GLubyte b; } ccColor3B;

...