• Cocos2d-x 文本渲染


     文本渲染:

    CCLabelAtlas、CCLabelBMFont、CCLabelTTF类都是继承 CCLabelProtocol类,即能够使用系统字,也能够自己定义渲染字体。

    CCLabelAtlas类使用图片作为文字的一种方式, 通过图片直接定义

    CCLabelAtlas *label0 = CCLabelAtlas::create("ASDE test ", "tuffy_bold_italic-charmap.png", 46, 64, ' ');//參数顺序:要显示字符,图片路径, 字符宽度,字符高度, 起始字符
    	label0->setPosition(ccp(100, 200));
    	label0->setOpacity(200);
    	this->addChild(label0);
    
    	CCLabelAtlas *label2 = CCLabelAtlas::create("456789123", "tuffy_bold_italic-charmap.png", 46, 64, ' ');
    	label2->setPosition(ccp(visibleSize.width/2, visibleSize.height/2));
    	label2->setOpacity(200);
    	this->addChild(label2);
    	
    
    
    	//文本闪烁动画
    	CCActionInterval *ac = CCFadeOut::create(1.2f);
    	CCActionInterval *ac2 = ac->reverse();
    	label2->runAction(CCRepeatForever::create(CCSequence::create(ac, ac2, NULL)));
    
    	//使用plist配置文件的描写叙述来定义,能够依据须要改动配置文件信息,包含图片路径、字符宽度高度、起始字符
    	CCLabelAtlas* label1 = CCLabelAtlas::create("WER VBN", "./tuffy_bold_italic-charmap.plist");//參数顺序:要显示字符,plist文件路径
    	label1->setPosition( ccp(10,100) );
    	label1->setOpacity( 200 );
    	this->addChild(label1);


    CCLabelTTF 类是通过系统字实现字体标签

    CCLabelTTF *ttf = CCLabelTTF::create("HELLO WORLD ", "Helvetica", 30, ccp(320, 30), kCCTextAlignmentLeft);//參数顺序:要显示字符。字库名称,字号。范围大小。对齐方式[kCCTextAlignmentLeft(左对齐) kCCTextAlignmentRight(右对齐) kCCTextAlignmentCenter(中心对齐)]
    	ttf->setPosition(ccp(300, 400));
    	this->addChild(ttf);


    CCTextFieldTTF类输入框使用文字标签,继承CCLabelTTF类

    CCTextFieldTTF *pTest = CCTextFieldTTF::textFieldWithPlaceHolder("<click hee for input>", "STHeitiTC-Light",40 );
    	pTest->setPosition(ccp(300, 500));
    	this->addChild(pTest);


    CCLabelBMFont类中每一个字都是一个精灵,每一个字都能够定义动作,并支持FNT类型文件

    CCLabelBMFont *label = CCLabelBMFont::create("Bitmap Font Atlas Xub", "fonts/bitmapFontTest.fnt");
    	addChild(label);
    
    	CCSize s = CCDirector::sharedDirector()->getWinSize();
    
    	label->setPosition( ccp(s.width/2-200, s.height/2) );
    	label->setAnchorPoint( ccp(0.5f, 0.5f) );
    
    
    	CCSprite* BChar = (CCSprite*) label->getChildByTag(0);//获取第1字符'B'
    	CCSprite* FChar = (CCSprite*) label->getChildByTag(7);//获取第7字符'F'
    	CCSprite* AChar = (CCSprite*) label->getChildByTag(12);//获取第12字符'A'
    	CCSprite* XChar = (CCSprite*) label->getChildByTag(18);//获取第12字符'A'
    
    	//为字符创建动作
    	CCActionInterval* rotate = CCRotateBy::create(2, 360);
    	CCAction* rot_4ever = CCRepeatForever::create(rotate);
    
    	CCActionInterval* scale = CCScaleBy::create(2, 1.5f);
    	CCActionInterval* scale_back = scale->reverse();
    	CCSequence* scale_seq = CCSequence::create(scale, scale_back,NULL);
    	CCAction* scale_4ever = CCRepeatForever::create(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);
    	CCSequence* seq = CCSequence::create(fade_out, fade_in, NULL);
    	CCAction* fade_4ever = CCRepeatForever::create(seq);
    
    	CCActionInterval *by = CCMoveBy::create(1.0f, ccp(300, 300));
    	CCActionInterval *by2 = by->reverse();
    	CCSequence* seq_by = CCSequence::create(by, by2, NULL);
    	CCAction *ac_by = CCRepeatForever::create(seq_by);
    
    
    	BChar->runAction(rot_4ever);
    	BChar->runAction(scale_4ever);
    	FChar->runAction(jump_4ever);
    	AChar->runAction(fade_4ever);
    	XChar->runAction(ac_by);


     

    版权声明:本文博客原创文章。博客,未经同意,不得转载。

  • 相关阅读:
    【网页前端】JS呈现时间戳为与当前时间比较结果
    【Django工具】Django_debug_toolbar使用
    【Django Models】Django数据查询 汇聚
    【Django Models】虚拟化提取Models公共的功能
    【网页在线编辑】图文发送的模式
    【Django后台数据管理】后台数据新建或者保存,经常遇到提示This field is required
    【BBS】Discuz部署
    【Django】QuerySet的分页和排序
    【Django数据库】如何将一个表自定义的key列还原成id列作为key
    18.6
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/4725014.html
Copyright © 2020-2023  润新知