首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 操作系统 >

Cocosd-x Label 试工浅析

2013-10-24 
Cocosd-x Label 试用浅析好久没发表博客了,今天深刻的意识到,再不写点什么,我就老了~~今后打算博客持续性

Cocosd-x Label 试用浅析

好久没发表博客了,今天深刻的意识到,再不写点什么,我就老了~~

今后打算博客持续性更新,多写点东西,一方面多和大家沟通分享,领一方面可以加深自己对该知识点的应用和理解。

这次从CCLabel** 说起吧。


1 CCLabelProtocol是文本标签的父类,CCLabelProtocol有三个直接子类,都是cocos2d-x中用来创建文本标签的,下面是类结构图

Cocosd-x Label 试工浅析

 

2 CCLabelTTF不仅是CCLabelProtocol的子类,其实也是CCSprite的子类,CCLabelTTF是用来渲染文本标签的,可以指定字体,每次设置字符串内容时,都需要重新创建纹理和渲染,性能不好,所以通常情况下使用CCLabelAtlas或者CCLabelBMFont代替。

 

3 CCLabelAtlas不仅是CCLabelProtocol的子类,其实也是CCAtlasNode的子类,CCAtlasNode封装了一个CCTextureAtlas的变量,CCTextureAtlas初始化图片文件的时候会把图片加载到缓存(CCTextureCache)中。CCLabelAtlas的绘制效率高,但是限制性太多,没有CCLabelBMFont灵活。

 

4 CCLabelBMFont不仅是CCLabelProtocol的子类,其实也是CCSpriteBatchNode的子类,创建CCLabelBMFont对象需要一个字符串和一个fnt格式的文件(字库)


下面是对对三种CCLabel的试用代码示例:

void HelloWorld::step(float dt){m_time += dt;//定时器实时更新计数char time_str[12] = {0};sprintf(time_str,"%2.2f",m_time);CCLabelAtlas* label2 = (CCLabelAtlas*)this->getChildByTag(1);label2->setString(time_str);}




热点排行