cocos2dx 字体文件

1.一些概念

ttf:true type font 它是用曲线方式描述字体轮廓,因此都可以输出很高质量的字形,即放大缩小看起也很清晰

bitmap font : 点阵字体 位图字体

atlas:词典意思是地图集, 我想它是用来表示多个图片拼在一起的感觉,

2.cocostudio中控件中相应的字体

Button:要求ttf格式字体,如果需要显示文字的话



AtlasLabel:要求一张0-9拼在一起的图片,比如显示数字1,则把图片对应部分取出来显示,数字本身相当于图片中的一个索引,不需要额外的映射关系文件,只要一张图片,并指明每个字符的宽高即可



BitmapLabel:需要一个字符对应到图片位置的表即 fnt文件,fnt文件里面包含了引用到图片的信息,各种显示参数等



3.fnt格式简述

fnt相当于一个配置文件,比如汉字“象”要用bitmap的方式显示。
象的unicode编码是8c61,转换为10进制为35937,再通过fnt文件找到id=35937的显示区域,最后把fnt对应图片相应区域扣出来显示




下面引用于http://www.cnblogs.com/sevenyuan/p/3275231.html

4.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)。两个文件的名称相同,只是扩展名不同。



参考:http://www.cnblogs.com/sevenyuan/p/3275231.html

TTF: http://blog.youkuaiyun.com/dadahacker/article/details/4982644

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值