Cocos2d-x 菜鸟进阶篇(四)Label 试用浅析
来源:互联网 发布:php中get和post区别 编辑:程序博客网 时间:2024/06/04 18:00
好久没发表博客了,今天深刻的意识到,再不写点什么,我就老了~~
今后打算博客持续性更新,多写点东西,一方面多和大家沟通分享,领一方面可以加深自己对该知识点的应用和理解。
这次从CCLabel** 说起吧。
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格式的文件(字库)
下面是对对三种CCLabel的试用代码示例:
bool HelloWorld::init(){ bool bRet = false; do { ////////////////////////////////////////////////////////////////////////// // super init first ////////////////////////////////////////////////////////////////////////// CC_BREAK_IF(! CCLayer::init());m_time = 0;CCLabelTTF* Label1 = CCLabelTTF::create("Chinese human","Marker Felt",30);//第一个参数是要显示的文字,第二个是字体,//第三个是文字大小Label1->setPosition(ccp(200,300));this->addChild(Label1);
//第一个参数是显示的文字,第二个是文字图片,第三个是图片里每个文字的宽度,四是高度,五是图片里第一个字符CCLabelAtlas* label2 = CCLabelAtlas::create("5121314","tuffy_bold_italic-charmap.png",48,64,' ');label2->setPosition(ccp(70,200));this->addChild(label2,1,1);//设置tag为1,方便在 step 里引用label2->setColor(ccRED);//设置字体颜色为红色CCActionInterval* act1 = CCFadeOut::create(0.2f);CCActionInterval* act2 = act1->reverse();CCSequence* seq = CCSequence::create(act1,act2,NULL);CCAction* repeat = CCRepeatForever::create(seq);label2->runAction( repeat );
//第一个参数是显示的文字,第二个参数是字体文件CCLabelBMFont* label3 = CCLabelBMFont::create("itisgood","bitmapFontTest.fnt");label3->setPosition(ccp(70,100));this->addChild(label3,1,2);CCSprite* BChar = (CCSprite*) label3->getChildByTag(0);//取出"itisgood"中的‘i’字符,可对它进行操作CCSprite* FChar = (CCSprite*) label3->getChildByTag(2);
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);}
- Cocos2d-x 菜鸟进阶篇(四)Label 试用浅析
- Cocos2d-x Label 试用浅析
- Cocos2d-x Label 试用浅析
- cocos2d-x 菜鸟进阶篇(三) ScrollView(上)
- cocos2d-x 菜鸟进阶篇(三) scrollView(下)
- cocos2d-x 菜鸟进阶篇(二) 重力感应
- cocos2d-x 菜鸟进阶篇(一) 在游戏中添加music
- cocos2d-x 菜鸟学习笔记十四(简单的碰撞检测 进阶篇)
- cocos2d-x 菜鸟实习生学习篇(四) 锚点的理解
- cocos2d-x 菜鸟学习笔记四(游戏场景与场景切换)
- Cocos2d-x学习笔记(四)浅析动作类CCAction(3)
- cocos2d-x 菜鸟实习生学习篇
- cocos2d-x 滚动数字label
- 【Cocos2d入门教程四】Cocos2d-x菜单篇
- cocos2d-x引擎浅析
- Cocos2d-x学习笔记(六)-------->Label控件
- Cocos2d-x开发教程 第六节 UI控件(Label)
- Cocos2d-X之游戏存储Sqlite基础篇(四)
- win7系统MySQL-5.0.18安装图解
- bootchart实现分析
- 常用CSS书写技巧
- android 自定义 折线图
- B. Vasya and Public Transport
- Cocos2d-x 菜鸟进阶篇(四)Label 试用浅析
- esp跟ebp跟踪记录
- 8 基于实例的学习
- LUA脚本语言第一课(笔记)
- Asp.net Configuration Part(1)
- JVM性能优化, Part 1 - JVM简介
- Django 笔记第一篇 基础回顾
- 直接拿来用!10款实用Android UI工具
- 1023