cocos2d-x 中的字体
来源:互联网 发布:磅房软件 编辑:程序博客网 时间:2024/05/21 11:04
原文地址:中的字体">cocos2d-x 中的字体 作者:YxSimple
1、CCLabelAtlas 比CCLabel(CCLabelTTF)快很多
2、CCLabelAtlas 中的每个字符必须有固定的高度和宽度
3、CCLabelAtlas 可以做你想要的,前提是你提供给他一张你想操作的字体的图片
4、CCLabelBMFont 比CCLabelAtlas 更灵活,他支持的字体宽可以参数化
5、增加一点,要用CCLabelAtlas创建字体你必须给出图片到字体的映射方式,也就是设置里面startCharMap的参数值,每种字体的映射方式不一样
继续说明
介绍
说明
CCLabelAtlas:
CCLabelBMFont:
CCLabelTTF:
通过上面的源代码我们能大概描述出其创建的方式 CCLabelAtlas:
1、将字符串清空 2、将设置的字符串赋值给先前清空的字符串
CCLabelBMFont: 1、将字符串清空 2、将设置的字符串赋值给先前清空的字符串 3、将每个节点设置为隐藏(CCLabelBMFont中对待每个字符是以CCNode的方式,因为他是CCSpriteBathNode的派生类) 4、显示新的字符(我们可以猜测这里的createFontChars的功能就是将新的字符赋值到每个节点中,后将节点显示出来)
CCLabelTTF 1、将字符串析构掉 2、重新new一个字符串 3、创建新的texture 4、将texture设置进去
从上面的setString函数调用开销可以看出一般我们在需要频繁改变显示的字符串的时候我们最好是采用CCLabelAtlas,比如说显示时钟的时候,其次是CCLabelBMFont,最后是CCLabelTTF 具体的创建和使用上面三个类,我们可以通过Cocos2d-x中FontTest来进行测试
最后需要说明的是上面的这些类全都继承自CCNode,CCNode有个接口函数runAction,也就是说我们可以将cocos2d-x中的所有动作和这些label结合起来显示,而 CCLabelBMFont是以CCNode的方式对待每个字符,那么每个字符都可以创建出动作
CCLabelBMFont
继承关系图
介绍
继续说明
1、 首先CCLabelBMFont是CCSpriteBatchNode的一个子类(这个很强大)
2、他能够把每一个字符当做一个CCSprite,这意味着每一个单独的字符都可以有自己的动作(什么旋转,放大,改变透明度)
3、所有内部字符的的定位点(anchorpoint)为(0.5,0.5),也就是说每一个字符相对于坐标点的位置为该字符的中心点(而不是左上角,或则左下角),这里说了建议不要去修改他,因为这种改变可能会影响绘制
4、CCLabelBMFont不仅具有CCLabel(CCLabelTTF)的灵活性,而且有CCLabelAtlas的速度和所有CCSprite的功能,如果你在考虑用CCLabelBMFont还是CCLabelAtlas时,那么就用CCLabelBMFont吧
CCLabelTTF
继承关系图
介绍
说明
CCLabelTTF很慢,考虑用CCLabelAtlas和CCLabelBMFont来替代
字体的创建方式
和cocos2d-x中大多数类型一样,字体也实现了静态工厂的模式(通过静态方法创建,采用CCPoolManager管理内存),当然你也可以采用非静态方法来创建
CCLabelAtlas:
上面已经说了CCLabelAtlas创建的字体相对于你给的字体图片来说必须有固定的宽度和高度,你还应该给出固定的映射方式(否则创建的字体达不到你的要的效果)
setString函数:
我们可以通过初始化的方式设置label显示的字符串,如果你想改变label显示的字符串,那么你就需要用到setString函数
0 0
- cocos2d-x 中的字体
- Cocos2d-x 中的字体
- Cocos2d-X中的字体
- cocos2d-x 自定义字体
- Cocos2D-X 资料
- Cocos2d-x字体图文对照
- cocos2d-x 字体使用方法浅析
- cocos2d-x 字体使用方法浅析
- cocos2d-x-3.3rc2 字体
- Cocos2d-x 添加TTF字体
- COCOS2D-X字体描边
- cocos2d cocos2d-x 使用自定义字体
- cocos2d-x CCLabelTTF 描边
- Cocos2d-x 2.1.4 发布
- cocos2d-x 使用 cocostu…
- cocos2d-x 使用 cocostu…
- cocos2d-x 2.x TTF字体显示
- cocos2d-x中的随机数
- 【Linux】bool的使用
- 向其他线程创建的控件中添加内容
- UIAlertView is deprecated in ios9
- 向其他线程创建的控件中添加内容
- IOS中各种动画特效的实现
- cocos2d-x 中的字体
- 在cocos2d-x中使用sqlite
- cocos2d-x 获取系统当前时间
- C++得到当前进程所占用的内…
- C++遍历文件夹下的所有文件
- mbstowcs,wcstombs,WideChar…
- 获取当前目录下所有文件的文件名
- 宽字符与字符串的相互转换
- Jquery easyUI treeGride用js初始化后不显示树结构的解决方案