Как придать эффектам тени метки предметов в cocos2D? - PullRequest
1 голос
/ 30 ноября 2011

В моей игре есть движущиеся спрайты и я добавил метки (CCLabelTTF).У меток есть такие символы, как A, B, C и т. Д. Я хочу придать эффекту теней содержимое меток, чтобы они были правильно видны.

в .h файле у меня есть

CCLabelTTF * метка;

и в .mi установлены его позиция и цвет."target" - это спрайт, на котором есть метки.

    target=[CCSprite spriteWithFile:[NSString stringWithFormat:@"balloon%d.png",enType] rect:CGRectMake(0, 0, 100, 119)];

label = [[CCLabelTTF alloc] initWithString:alphabetValue dimensions:CGSizeMake([target contentSize].width, [target contentSize].height)  
                                     alignment:UITextAlignmentCenter fontName:@"verdana" fontSize:30.0f];

    //LABEL POSITION HERE
    label.position = ccp(55,30);

    label.color = ccc3(60,60,60);

    [target addChild:label z: 10];

Теперь я хочу дать эффект тени ... как я могу это сделать?

1 Ответ

7 голосов
/ 30 ноября 2011

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

CGSize size = CGSizeMake([target contentSize].width, [target contentSize].height);
labelShadow = [[CCLabelTTF alloc] initWithString:alphabetValue 
                                dimensions:size  
                                 alignment:UITextAlignmentCenter
                                  fontName:@"verdana" fontSize:30.0f];
labelShadow.position = ccp(55+2,30+2); // slightly offset
labelShadow.color = ccc3(10,10,10);
[target addChild:labelShadow z:10];

label = [[CCLabelTTF alloc] initWithString:alphabetValue 
                                dimensions:size  
                                 alignment:UITextAlignmentCenter
                                  fontName:@"verdana" fontSize:30.0f];
label.position = ccp(55,30);
label.color = ccc3(60,60,60);
[target addChild:label z:10];

Вы также можете поэкспериментировать с небольшим масштабированием labelShadow вверх или увеличением его fontSize.

Примечание: создание мягкой (размытой) тени невозможно.Для этого вы можете использовать методы фильтрации текстур , доступные здесь .

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