转自:http://blog.sina.com.cn/s/blog_67a5e47201018tj8.html

在Cocos2d以及Cocos2d-x中,我们经常会用到CCLabelTTF以及CCLabelAtlas在层或精灵中添加文字。

其实总共有三个添加文字的类,另外一个是CCLabelBMFont,我用的不怎么多。
 
1. CCLabelTTF
CCLabelTTF::labelWithString(const char *label,          //文字内容
const CCSize& dimensions, //范围 CCSize(0,0)默认大小
CCTextAlignment alignment, //对齐方式 0左 1中 2右
const char *fontName, //字体名
float fontSize //字号)
CCLabelTTF是CCTextureNode的子类,通过系统字体生成label。
CCLabelTTF对象渲染比较慢,每次调用setString的时候,一个新的OpenGL纹理将被创建,这意味着setString和创建一个新的标签一样慢,所以当需要频繁更新label的时候,应该选择另外两种文字类。
 
由于CCLabelTTF这个类使用的是系统中的字体,不需要额外往项目文件中添加字体文件。但如果你有自定义的字体也可以加到项目中,如果无法使用,可以查看一下ccConfig.h中的CC_FONT_LABEL_SUPPORT是否enable了。
 
2. CCLabelAtlas
CCLabelAtlas::labelWithString(const char *label,         //标签文字内容
const char *charMapFile, //图片路径
unsigned int itemWidth, //元素的宽度
int unsigned itemHeight, //高度
unsigned char startCharMap //起始的字符)
引擎模板里面左下角显示帧率的数字,就是利用CCLabelAtlas来实现的。因为帧率一直在变。
每个字符的高度和宽度不能设置错误,否则显示的时候可能就不对了。最后一个起始的字符用来对应字符和图像的关系的。
 
3. CCLabelBMFont
CCLabelBMFont::labelWithString(const char *str,
const char *fntFile)
它是CCSpriteSheet的一个子类,对每一个字符就像一个CCSprite来对待,因此每个单独的字符可以进行旋转、缩放、设置透明等操作。
所有字符都是使用anchorPoint(0.5, 0.5),所以最好不要更改它,会影响渲染。
 
使用该类之前,需要添加好字体文件,包括一个图片文件(AA.png)和一个字体坐标文件(AA.fnt)。两个文件的名称相同,只是扩展名不同。
 
CCLabelBMFont的改变相当于每次只改变图片坐标。

CCLabelTTF、CCLabelAtlas和CCLabelBMFont的区别的更多相关文章

  1. cocos2dx中创建标签CCLabel的三种方法及特点

    创建标签的三种方式:1.CCLabelTTF     (True Type Font,又叫本地字体)这是最简单,也是最常用的方式,不依赖于资源文件,也不依赖于某个系统,所指定的字体如果系统没有,则会提 ...

  2. 【Cocos2d-X开发学习笔记】第09期:渲染框架之菜单类(CCMenu)的使用

    本系列学习教程使用的是cocos2d-x-2.1.4(最新版为3.0alpha0-pre) ,PC开发环境Windows7,C++开发环境VS2010    一.菜单项(CCMenuItem) 菜单项 ...

  3. Cocos2d-x 文本渲染

     文本渲染: CCLabelAtlas.CCLabelBMFont.CCLabelTTF类都是继承 CCLabelProtocol类,即能够使用系统字,也能够自己定义渲染字体. CCLabelAtla ...

  4. cocos2d-x2.2.3 Layer分析

    <pre name="code" class="cpp">Layer CCLayerColor: 能够改变Layer的背景,能够设置大小 CCLay ...

  5. 3.4 常用的两种 layer 层 3.7 字体与文本

    3.4 常用的两种 layer 层  //在cocos2d-x中,经常使用到的两种 layer 层 : CCLayer 和 CCLayerColor //CCLayer 的创建 CCLayer* la ...

  6. Cocos2d-x-html5之HelloWorld深入分析与调试

    Cocos2d-x-html5之HelloWorld深入分析与调试 另:本章所用Cocos2d-x版本为: Cocos2d-html5-v2.1.1 http://cn.cocos2d-x.org/d ...

  7. cocos中添加显示文字的三种方式(CCLabelTTF 、CCLabelBMFont 和CCLabelAtlas)

    CCLabelTTF CCLabelTTF 每次调用 setString (即改变文字)的时候,一个新的OPENGL 纹理将会被创建..这意味着setString 和创建一个新的标签一样慢. 这个类使 ...

  8. cocos2d 中加入显示文字的三种方式(CCLabelTTF 、CCLabelBMFont 和CCLabelAtlas)

    在 cocos2d 中有三个类能够在层或精灵中加入文字: CCLabelTTF CCLabelBMFont CCLabelAtlas      CCLabelTTF CCLabelTTF 每次调用 s ...

  9. cocos2d-x中CCLabelAtlas的小图片拼接

    美术在设计UI时,很多界面可能使用了数字图片来展示一些效果,比如CD或者 x1/x2等,一般她们都会切成很多单张小的图片,类似这样   cocox2d-x中CCLabelAtlas支持直接从图片中读取 ...

随机推荐

  1. ffmpeg开发指南

    FFmpeg是一个集录制.转换.音/视频编码解码功能为一体的完整的开源解决方案.FFmpeg的开发是基于Linux操作系统,但是可以在大多数操作系统中编译和使用.FFmpeg支持MPEG.DivX.M ...

  2. js除法余数

    return (Math.round(rs*100)/100); //保保留小数点后两位数: //如果要保留三位则改为:Math.round(rs*1000)/1000; //如果要保留四位则改为:M ...

  3. 在stm32上移植wpa_supplicant(一)

    wifi芯片为88w8686,已经写好了驱动,用的是SPI方式,接下来准备移植wpa_supplicant.参考的资料为一篇论文----<基于微控制器的WPA技术研究与应用>. wpa_s ...

  4. hdu 2818 Building Block(加权并查集)2009 Multi-University Training Contest 1

    题意: 一共有30000个箱子,刚开始时都是分开放置的.接下来会有两种操作: 1. M x y,表示把x箱子所在的一摞放到y箱子那一摞上. 2. C y,表示询问y下方有多少个箱子. 输入: 首行输入 ...

  5. HDU1402 A * B Problem Plus FFT

    分析:网上别家的代码都分析的很好,我只是给我自己贴个代码,我是kuangbin的搬运工 一点想法:其实FFT就是快速求卷积罢了,当小数据的时候我们完全可以用母函数来做,比如那种硬币问题 FFT只是用来 ...

  6. C/C++:类模板

    类模板就是为类声明一种模板,使得类中的某些数据成员,或某些成员函数的参数,又或者是某些成员函数的返回值可以取任意的数据类型,包括基本数据类型和自定义数据类型. 类模板的声明形式如下: template ...

  7. 多校1005 HDU5785 Interesting (manacher)

    // 多校1005 HDU5785 Interesting // 题意:给你一个串,求相邻两个回文串左边端点*右边端点的和 // 思路:马拉车算出最长回文半径,求一个前缀和,既得到每个点对答案的贡献. ...

  8. 瞬间从IT屌丝变大神——命名规则

    为了避免命名冲突,命名规则如下: 公共组件因为高度重用,,命名从简,不要加前缀. 各栏目的相应代码,需加前缀,前缀为工程师姓名拼音的首字母,例如:海子前缀为“hz_”,分隔符为下划线"_&q ...

  9. Components of the Impala Server

    Components of the Impala Server The Impala server is a distributed, massively parallel processing (M ...

  10. sf空间配置

    1.创建VHost     记住Homepage,打开VHost DNS标签页,创建Virtual Host,如下图: 2.Wcp上传文件     用户名是"sf用户名,sf项目名" ...