cocos2d - как извлечь RGB из цвета - PullRequest
0 голосов
/ 07 июля 2011

Я делаю финальную часть своей игры, в которой рассказывается, каков ваш счет. Я хотел, чтобы он был быстрым, динамичным и анимированным, поэтому я хочу, чтобы счет был как бы суммирован, что я планирую сделать, чтобы текст, отображаемый счетом, приближался к фактическому счету в каждом событии розыгрыша, пока он не достигнет общего оценка.

Однако я хочу, чтобы цифры партитуры мигали по мере их увеличения, а затем исчезали. Я планирую сделать это, извлекая последнюю цифру из партитуры, которая отображалась на расстоянии одного шага, а затем сравнивая ее с последней цифрой из партитуры, которая отображается в данный момент. Затем, если они отличаются, я установлю цвет последней цифры от белого до оранжевого. Это будет происходить для каждой цифры.

Но затем я хочу, чтобы цифры снова стали белыми, поэтому мне нужна помощь (я искал повсюду и не могу найти ответ), мне нужно получить цвет каждой буквы, а затем объединить это в белом. но я не знаю, как получить красный, зеленый и синий компоненты. вот что у меня так далеко:

-(BOOL) colourCount:(CCLabelBMFont*)label currentNo:(int)cNo targetNo:(int)tNo {
    CCArray *characters = [label children];

    //-------The code for making certain letters orange will go here----------

    //below makes the color of every letter more white
    for (int i=0; i++; i<[characters count]) {
        [(CCSprite *)[characters objectAtIndex:[characters count]-i] setColor: [self mergeFont: [(CCSprite *)[characters objectAtIndex:[characters count]] color] ] ];
    }
}

и затем мне нужна функция с именем mergeFont, которая принимает ввод цвета, делает его более белым, а затем возвращает этот цвет. Я даже не уверен, какой цвет хранится как бы - это int?

спасибо

1 Ответ

2 голосов
/ 07 июля 2011

В объектах ccColor3B каждое значение сохраняется как GLubyte

Исходный код из ccType:

typedef struct _ccColor3B
{
         GLubyte r;
         GLubyte g;
         GLubyte b;
 } ccColor3B;

 static inline ccColor3B
 ccc3(const GLubyte r, const GLubyte g, const GLubyte b)
 {
         ccColor3B c = {r, g, b};
         return c;
}
//ccColor3B predefined colors
static const ccColor3B ccWHITE = {255,255,255};
static const ccColor3B ccYELLOW = {255,255,0};
static const ccColor3B ccBLUE = {0,0,255};
static const ccColor3B ccGREEN = {0,255,0};
static const ccColor3B ccRED = {255,0,0};
static const ccColor3B ccMAGENTA = {255,0,255};
static const ccColor3B ccBLACK = {0,0,0};
static const ccColor3B ccORANGE = {255,127,0};
static const ccColor3B ccGRAY = {166,166,166};

Источник: API ccTypes

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...