[cocos2d-x] --- CCLabelProtocol文本标签详解
来源:互联网 发布:昆明行知中学招生简章 编辑:程序博客网 时间:2024/05/29 09:15
Cocos2d-x学习交流群:140326755
Email : hahayacoder@gmail.com
1 CCLabelProtocol是文本标签的父类,CCLabelProtocol有三个直接子类,都是cocos2d-x中用来创建文本标签的,下面是类结构图
2 CCLabelTTF不仅是CCLabelProtocol的子类,其实也是CCSprite的子类,CCLabelTTF是用来渲染文本标签的,可以指定字体,每次设置字符串内容时,都需要重新创建纹理和渲染,性能不好(可以查看相关的源代码),所以通常情况下使用CCLabelAtlas或者CCLabelBMFont代替。
3 CCLabelAtlas不仅是CCLabelProtocol的子类,其实也是CCAtlasNode的子类,CCAtlasNode封装了一个CCTextureAtlas的变量,CCTextureAtlas初始化图片文件的时候会把图片加载到缓存(CCTextureCache)中。CCLabelAtlas的绘制效率高,但是限制性太多,没有CCLabelBMFont灵活。
4 CCLabelBMFont不仅是CCLabelProtocol的子类,其实也是CCSpriteBatchNode的子类,创建CCLabelBMFont对象需要一个字符串和一个fnt格式的文件(字库)
CCLabelBMFont *label= CCLabelBMFont::labelWithString("Bitmap Font Atlas", "fonts/bitmapFontTest.fnt");
5这个bitmapFontTest.fnt
文件包含了这些信息:对应图片的名字(图片包含了所有你要绘制的字符)、图片中的
字符对应的unicode编码、字符在图片中的坐标、宽高等。初始化CCLabelBMFont对象时,会把图片添加到缓存(CCTextureCache)中,解析fnt文件,把fnt文件中对应的信息保存到一个ccBMFontDef类型的数组里面,数组的索引是charId(字符的unicode编码值)。绘制字符串时,根据字符对应的unicode码去查找ccBMFontDef信息,从缓存中取出图片,再根据ccBMFontDef中坐标、宽高取出对应区域的字符图片,把字符在字符串中的索引位置作为tag添加到CCLabelBMFont中,因为CCLabelBMFont本身是CCSpriteBatchNode,这样就实现了批处理渲染精灵,提高了性能。
- [cocos2d-x] --- CCLabelProtocol文本标签详解
- cocos2d-x 文本标签的用法
- Cocos2d-x结构学习(七)CCDirector、CCLabelTTF、CCLabelProtocol、CC_PROPERTY、TypeInfo
- cocos2d-x生成带边框的标签CCLabelTTF文本
- Cocos2d-x ——CCLabel 文本标签简介
- Cocos2d-x ——CCLabel 文本标签简介
- Cocos2d-x v3.0正式版尝鲜体验Label文本标签
- Cocos2d-x文本菜单
- Cocos2d-x 文本渲染
- Cocos2d-x v3.x官方文档]文本标签(Label) 分享0
- Cocos2d-x 文字标签
- cocos2d-x 标签Lable
- cocos2d-x 文本读取CCFileUtils
- Cocos2d-x v3.0正式版尝鲜体验【3】 Label文本标签
- Cocos2d-x v3.0正式版尝鲜体验【3】 Label文本标签
- cocos2d-x坐标系详解
- cocos2d-x ccsprite 详解
- cocos2d-x + TiledMap 详解
- Swing第六刀:老婆不能换,窗户框可以
- Linux vsftpd proftpd配置
- 时间片轮转算法做题思路
- VC多线程中全局函数如何调用对话框类成员变量及成员函数
- 2013编程之美资格赛之树上的三角形(Java实现)
- [cocos2d-x] --- CCLabelProtocol文本标签详解
- Fuz OJ 2116 买糖果
- #define and const
- 学习Linux-20130409
- 神奇的向量旋转
- 多线程笔试面试概念问答
- HTTP协议
- 快速排序
- HttpURLConnection的字符流中文乱码