如何为cocos2D中的标签项提供阴影效果?

时间:2011-11-30 12:25:58

标签: iphone objective-c cocos2d-iphone

我在游戏中移动了精灵,并在其上添加了标签(CCLabelTTF)。标签有A,B,C等字符。我想给标签的内容赋予阴影效果,以便它们可以正常显示。

在.h文件中我有

CCLabelTTF *标签;

在.m中我已经设定了它的位置和颜色。 “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 个答案:

答案 0 :(得分:7)

添加相同的标签两次,一次略大。应首先创建阴影标签,使其显示在实际标签后面,或使用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。

注意:它不会创建柔和(模糊)阴影。为此,您可以使用texture filter methods available here