ITKeyword,专注技术干货聚合推荐

注册 | 登录

cocos2d-x基本知识点:文本渲染

u010002704 分享于 2014-09-18

2018阿里云全部产品优惠券(新购或升级都可以使用,强烈推荐)
领取地址https://promotion.aliyun.com/ntms/yunparter/invite.html

文本渲染类:

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/



文本渲染类: CCLabelAtlas类: CCLabelAtlas是使用图片作为文字的一种方式,该类可以通过图片直接定义,eg: CCLabelAtlas* label1 = CCLabelAtlas::create("test","fonts/1.png",48,64,' ');

相关阅读排行


用户评论

游客

相关内容推荐

最新文章

×

×

请激活账号

为了能正常使用评论、编辑功能及以后陆续为用户提供的其他产品,请激活账号。

您的注册邮箱: 修改

重新发送激活邮件 进入我的邮箱

如果您没有收到激活邮件,请注意检查垃圾箱。