使用BMfont生成cocos2d 自定义字体

内容纲要

[原文地址:http://blog.csdn.net/qiurisuixiang/article/details/8984288]

1 在看别人的代码的时候,有时候会发现.fnt文件,这个文件是如何产生的呢,其实是使用位图处理工具生成的


2下载Window下的位图处理工具BMFont,下载地址:http://www.anglecode.com/products/bmfont


3 安装后,打开BMFont,界面如下,右边的列表是字体库

4 新建一个txt文件,输入要用到的文字(一定要保存为UTF-8格式,否则软件无法识别


5 在BMFont上找到Edit菜单,然后选择Selects chars from file,载入刚才新建的txt文件,你会发现刚才输入的字符在BMFont中已经被选中。


6 在BMFont上找到Option菜单,然后选择Font Setting设置字体,然后设置其中的Font(字体可以按需求随便选择)和Charset(默认的Unicode就可以)

7 设置导出选项,在BMFont上找到Option菜单,然后选择Export options,在cocos2d-x中需要按如下设置


8 准备导出字体,在BMFont上找到Options,然后选择Save bitmap font as,会发现保存路径下多出了一个fnt文件和一个png文件(其实这个和plist文件保存拼图信息原理差不多),将它们拷贝到cocos2d-x工程的Resources目录下

9 使用方法如下

[cpp] view plaincopy

  1. /** 使用字体位图 **/  

  2. //创建位图 第一个参数要和在BMFont中载入的文字中存在的  

  3. CCLabelBMFont *label = CCLabelBMFont::create("I am hahaya.""info.fnt");  

  4. label->setPosition(ccp(size.width / 2, size.height - 50));  

  5. this->addChild(label, 1);  


10 程序运行效果


11 在使用BMFont生成中文时需要注意,在Font Setting中设置Font时,Font要设置成中文的(比如微软雅黑),Charset默认Unicode就行,同样按照以前相同的方式设置Export options。然后再将写有中文的文本文件载入,最后保存。

12 使用中文位图代码如下

本篇讲解如何利用美工提供的字符图形来生成自定义字体。

美术提供的字体经常是下面这样的:

或者这样的:

这时候我们就要借助BMFont了,首先针对真彩色的图形,我们要做一些设定,点击"Options"->“Export options”:

在弹出的窗口中,注意红框中“位深”,设为32:

然后,点击"Edit"->"(Un)Select all chars",取消选择所有字符。因为我们将在后边导入需要的字符。

OK,现在点击"Edit"->"Open Image Manager":

弹出图片管理窗体,如下:

那个"Image"是菜单,可以点击。选择"Image"->"Import image...":

弹出如下窗体:

点击"Browse"按钮,在弹出的“打开”窗口中选择一个字符图片,比如"0":

然后在ID后的文本框中输入字符"0"的Ascii值:48,点击"OK"。

这时返回主窗体,你会看到字符表中"0"右下角有一个小亮点标记,说明该字符的图形为自定义图片。如下图:

按上述方法,依次加入其它字符的图片,完成后如下:

OK,下面准备导出。导出前我们可以先点击"Options"->"Visualize"预览一下:

嗯,材质稍微有点大。导出fnt的方法大家都清楚了,就不再复述了。

最后得到如下文件:

好浪费内存啊,罪过罪过……

(修改下长宽就好)

发表回复