cocos2d label信息汇集

来源:互联网 发布:腾讯游戏优化 编辑:程序博客网 时间:2024/05/22 10:32

Refer to: http://blog.sina.com.cn/s/blog_82ca0a77010111xt.html

Refer to: http://blog.csdn.net/aa4790139/article/details/8113197


一、CCLableTTF

1、char *description();

该函数会得到当前label使用的字体名称及当前字体大小信息。

2、static CCLabelTTF *labelWithString(const char *label, const char *fontName, floatfontSize);

这是一个静态初始化函数,该方法返回一个CCLabelTTF对象指针。

参数含义: label:需要显示的字符串,fontName:使用字体名称,fontSize:设置字体大小

3、bool initWithString(const char *label, const char *fontName,float fontSize);

初始化label,参数含义与上一个函数相同。这一函数与上一函数的区别为:本函数不是静态函数,也就是说你必须实例化一个CCLabelTTF对象之后才能调用本函数。

4、virtual void setString(const char *label);

可以看到这是个虚函数,继承自CCLabelProtocol类。本函数的作用就是改变当前label显示的字符串。
5、virtual const char* getString(void);

这也是一个继承自CCLabelProtocol的虚函数,功能为得到当前label显示的字符串。

二、CCLabelBMFont

1、static void purgeCachedData();

顾名思义,该函数作用为清空缓存数据。

2、static CCLabelBMFont * labelWithString(const char *str, constchar *fntFile);

这也是一个静态初始化函数.

需要提供的参数信息为: (const char *)str:要显示的字符串,(const char*)fntFile:字体坐标文件

说明:字体坐标文件,与其对应的是一个同名的png文件,里面保存了字体样本,显示的时候就是通过fnt坐标文件从png里面选择字符并显示,如图

  cocos2d-x <wbr>字体使用方法浅析                      cocos2d-x <wbr>字体使用方法浅析

图1 bitmapFontChinese.fnt部分内容                 图2 bitmapFontChinese.png字体样本


至于其具体工作原理就不深究了,这里只要知道使用方法就行。
3、bool initWithString(const char *str, const char *fntFile);

参数含义同上。

4、virtual void setString(const char *label);
   virtual const char*getString(void);

这两个函数同样是继承自CCLabelProtocol的函数。作用就不多说了。

三、CCLabelAtlas

需要注意的是,使用这个类提供的方法需要你提供字体图片,而且CCLabelAtlas只支持定尺寸大小的字体显示,也就是说你给出的字体图片中的每个字符必须等尺寸。初始化的时候也必须给出每个字符的宽和高,以便于程序自动取图。

其工作原理个是根据ACSII工作,给出第一个字符,程序自动得到其ASCII码,然后再依次得到需要显示的字符串中每个字符的ASCII码并计算其位置,所以字体图片中的字符必须按ACSII码排列,不然得不到想要的字符串

现给出cocos2d自带的两个示例图片

如图:

cocos2d-x <wbr>字体使用方法浅析                cocos2d-x <wbr>字体使用方法浅析

    图3fps_image.png                             图4tuffy_bold_italic-charmap-hd

 

1、static CCLabelAtlas * labelWithString(const char *label, constchar *charMapFile,

unsigned int itemWidth, unsigned int itemHeight,unsigned char startCharMap);

参数含义: (const char *)label:当然是要显示的字符串了,(const char*)charMapFile:上面所说的字体图片

(unsigned int)itemWidth、itemHeight:字符的尺寸,也就是宽和高,这个必须根据你的字体图片来给出值

(unsignedchar)startCharMap:从哪个字符开始,一般是字体图片的第一个字符

2、bool initWithString(const char *label, const char*charMapFile,

unsigned int itemWidth, unsigned int itemHeight,unsigned char startCharMap);

各参数含义同上一个函数。

3、virtual void setString(const char *label);
   virtual const char*getString(void);

这两个函数在三种字体类中都一样,都是继承自CCLabelProtocol。详见CCLabelTTF中的描述



Bitmap Font Generator 使用

1、下载地址:http://www.angelcode.com/products/bmfont/

2、创建一个txt文件,然后输入你用到的文字

这是我输入的内容(注意:保存的是有移动要用utf-8,可能这软件不支持别编码)

3、认识Bitmap Font generator界面:

这是我们默认打开的样子,右边的列表是我的字体库,各种不同的字体,中间的就是单独的字体块(注意:为了符号等输入,请勾选右边列表的第一项Latin+Latin Supplement)

①Edit->select char from file   选择刚刚创建的Bitmap.txt文件,导入进来就会发现,刚内容中的字符,在这个软件里面,对应的字块被选中了

②Options->Font Setting  :Font 随便你自己选中,charset选中默认Unicode就行了

③Options->Export Options:

注意框出的地方,这是cocos2dx,如果使用其他引擎,请按照对应的引擎设置

④Options->save bitmap font as..

然后输入导出的文件名bitmap,文件类型默认选.fnt,然后就会发现导出路径多了一个bitmap.png的文件,那就是图片资源

  1. CCSize s = CCDirector::sharedDirector()->getWinSize();  
  2.     //注意:输入图库里面有的文字  
  3.     CCLabelBMFont* label = CCLabelBMFont::create("oh!I use bitmap succeed! ""fonts/bitmap.fnt");  
  4.     CCMenuItemLabel* item = CCMenuItemLabel::create(label, this, menu_selector(MenuTestLayer::menuCallbackConfig));  
  5.     item->setPosition(ccp(s.width/2, s.height/2));  
  6.     layer->addChild(item); 


原创粉丝点击