文本渲染:

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);

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

Cocos2d-x 文本渲染的更多相关文章

  1. 【JAVASCRIPT】React入门学习-文本渲染

    摘要 react 学习包括几个部分: 文本渲染 JSX 语法 组件化思想 数据流 文本渲染 1. 纯文本渲染 <!DOCTYPE html> <html> <head&g ...

  2. Vue-Vue文本渲染三种方法 {{}}、v-html、v-text

    {{ }} 将元素当成纯文本输出 v-htmlv-html会将元素当成HTML标签解析后输出 v-textv-text会将元素当成纯文本输出 代码: <!DOCTYPE html> < ...

  3. vue2.0 之文本渲染-v-html、v-text

    vue2.0 之文本渲染-v-html.v-text 1.index.html代码 <!DOCTYPE html> <html> <head> <meta c ...

  4. 微信小程序富文本渲染组件html2wxml及html2wxml代码块格式化在ios下字体过大问题

    1.组件使用: 之前微信小程序的富文本渲染组件用的wxParse,对普通富文本确实可以,但是对于代码格式pre标签则无法使用. 下面这个html2wxml很不错,可以支持代码高亮. 详细文档:http ...

  5. vue之文本渲染

    Vue使用了基于HTML的模板语法,允许开发者声明式地将DOM绑定至底层Vue实例的数据.所有Vue的模板都是合法的HTML,所以能被遵循规范的浏览器和HTML解析器解析. 在前面,我们一直使用的是{ ...

  6. CSS关于文本渲染的属性text-rendering

    CSS关于文本渲染的属性text-rendering告诉渲染引擎工作时如何优化显示文本. 浏览器会在渲染速度.易读性(清晰度)和几何精度方面做一个权衡. 我们知道,SVG-可缩放矢量图形(Scalab ...

  7. IOS Html富文本渲染方式:DTCoreText、WKWebView、UIWebView的内存占用对比

    在app的内容页(详情页)中,富文本的显示一直是经常需要处理的问题,而通常在后端的富文本编辑中,Html应用比较普遍,所以其实需要处理的Html富文本显示的问题,以下这三种方式肯定不是最优的显示Htm ...

  8. 基于OpenGL编写一个简易的2D渲染框架-05 渲染文本

    阅读文章前需要了解的知识:文本渲染 https://learnopengl-cn.github.io/06%20In%20Practice/02%20Text%20Rendering/ 简要步骤: 获 ...

  9. ajax获取富文本数据无法正常渲染到页面问题

    有时候富文本渲染到页面的时候 会连带标签一起渲染出来. 解决办法: 首先引用    <script src="https://cdn.jsdelivr.net/npm/fuwenben ...

随机推荐

  1. Mac下使用MySQL

    0 安装 http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.17-osx10.7-x86.dmg http://dev.mysql.com/down ...

  2. 【Win7】【磁盘管理】删除相似“33fbc1d57e9aaf1ea88e6f08”缓存目录

    一般,在计算机磁盘.移动硬盘.或U盘出现,类别似"33fbc1d57e9aaf1ea88e6f08",你不能删除缓存目录.能Win7删除. (1).使用管理员,打开命令提示符窗口( ...

  3. 同一个存储过程中,不能多次select into 到同一张表的问题

    表记录的插入方式有两种.其一,先create table 再 insert into from ....其二, 直接 select into. 第一种方式,由于要记录日志,因此IO消耗更多,durat ...

  4. 最佳新秀SSH十六Struts2它是如何工作的内部

    前面说完了Spring.Hibernate,非常自然今天轮到struts了.struts的核心原理就是通过拦截器来处理client的请求,经过拦截器一系列的处理后,再交给Action.以下先看看str ...

  5. Windows 7 USB DVD Download Tool 制作的U盘无法启动安装Windows7 SP1

    以前用此工具安装Windows7一直正常,未遇到不能启动安装的问题.Windows7 SP1出来后,用此工具制作安装多台机器均不能引导安装(品牌机和兼容机均是如此 ),要么停留在光标闪烁的状态,要么就 ...

  6. A Novel Multi-label Classification Based on PCA and ML-KNN

     ICIC Express Letters                  ICIC International ⓒ2010 ISSN 1881-803X Volume4, Number5, O ...

  7. 对ESB概念的理解(转)

    http://www.ibm.com/developerworks/cn/webservices/0811_magy_esb/ 什么是 ESB?ESB 严格来说不是某一个产品,而是一种框架,设计模式. ...

  8. Nexon由Xsolla全球支付服务

    韩国游戏公司纳克森决Nexon定从今年10月1日起,与Xsolla开展Playspan的合作,向全球提供更好的服务. 当Nexon的玩家随时想购买NX点数的时候.Xsolla的服务能够进入程序,让您的 ...

  9. codeforces Round #260(div2) D解决报告

    D. A Lot of Games time limit per test 1 second memory limit per test 256 megabytes input standard in ...

  10. c++内存泄漏处理(积累)

    写c++程序时,常常会出现内存泄漏的问题,这里从网上找了一种非常麻烦的方法:假设想找到每一个cpp文件的内存泄漏,都必须在每一个cpp加上例如以下代码: #include <crtdbg.h&g ...