CCLabelAtlas类:
CCLabelAtlas是使用图片作为文字的一种方式,该类可以通过图片直接定义,eg:
CCLabelAtlas* label1 = CCLabelAtlas::create("test","fonts/1.png",48,64,' ');
// 要显示的文本字符串,图片路径,字符宽度,字符高度,起始字符
CCLabelAtlas类还可以使用plist配置文件的描述来定义,eg:
CCLabelAtlas* label1 = CCLabelAtlas::create("test","fonts/1.plist");
//使用这种字体时,可定义颜色、透明度等参数,甚至文字标签也可运行动作,eg:
label2->setPosition(ccp(10,200));
label2->setColor(ccRED);
label2->setOpacity(200);
CCActionInterval* fade = CCFadeOut::create(1.0f);
CCActionInterval* fade_in = fade->reverse();
CCFiniteTimeAction* seq = CCSequence::create(fade,fade_in,NULL);
CCAction* repeat = CCRepeatForever::create((CCActionInterval*)seq);
label2->runAction(repeat);
// 当字体需要有一个"出场"或"离开"的方式时,运行动作可帮你实现
CCLabelTTF类:
CCLabelTTF类是通过系统字来实现字体标签的,定义如下:
CCLabelTTF* ttf0 = CCLabelTTF::create("Alignment 0\nnew line",CCSizeMake(256,32),kCCTextAlignmentLeft,"Helvetica",12);
// 标签文字内容,范围,对齐方式,字库名,字号
// 对齐方式:kCCTextAlignmentLeft,kCCTextAlignmentCenter,kCCTextAlignmentRight;可通过setAnchorPoint设置整个字符串的锚点
CCTextFieldTTF类是CCLabelTTF类的子类,它是输入框使用的文字标签,定义如下:
CCTextFiledTTF* pTextField = CCTextFieldTTF::textFiledWithPlaceHolder("<click here for input>",FONT_NAME,FONT_SIZE);
// 默认的字符串,字体名称,字号
注:CCLabelTTF速度偏慢,尽量使用另外两种字体
CCLabelBMFont类:
CCLabelBMFont类也是文字渲染标签类。CCLabelBMFont类中的每个字都是一个精灵类,意味着每个字都可以有自己的旋转
动作,并且支持FNT类型的文件,定义如下:
CCLabelBMFont* label1 = CCLabelBMFont::create("Test","fonts/2.fnt");
label1->setAnchorPoint(ccp(0,0));
addChild(label1,0,kTagBitmapAtlas1);
CCActionInterval* fade = CCFadeOut::create(1.0f);
CCActionInterval* fade_in = fade->reverse();
CCFiniteTimeAction* seq = CCSequence::create(fade,fade_in,NULL);
CCAction* repeat = CCRepeatForever::create((CCActionInterval*)seq);
label1->runAction(repeat);
// 要显示的文字,FNT文件
获得单个文字并为单个文字运行动作如下所示:
CCSprite* BChar = (CCSprite*)label->getChildByTag(0);
CCSprite* FChar = (CCSprite*)label->getChildByTag(7);
CCSprite* AChar = (CCSprite*)label->getChildByTag(12);
CCActionInterval* rotate = CCRotateBy::create(2,360);
CCAction* rot_4ever = CCRepeatForever::create(rotate);
CCActionInterval* scale = CCScaleBy::create(2,1.5f);
CCActionInterval* scale_back = scale->reverse();
CCFiniteTimerAction* scale_seq = CCSequence::create(scale,scale_back,NULL);
CCAction* scale_4ever = CCRepeatForever::create((CCActionInterval*)scale_seq);
CCActionInterval* jump = CCJumpBy::create(0.5f,CCPointZero,60,1);
CCAction* jump_4ever = CCRepeatForever::create(jump);
CCActionInterval* fade_out = CCFadeOut::create(1);
CCActionInterval* fade_in = CCFadeIn::create(1);
CCFiniteTimeAction* seq = CCSequence::create(fade_out,fade_in,NULL);
CCAction* fade_4ever = CCRepeatForever::create((CCActionInterval*)seq);
BChar->runAction(rot_4ever);
BChar->runAction(scale_4ever);
FChar->runAction(jump_4ever);
AChar->runAction(fade_4ever);
生成FNT配置文件的工具(windows平台):http://www.angelcode.com/products/bmfont/