Learning Cocos2d-x for WP8(4)——中文显示

C#(wp7)兄弟篇Learning Cocos2d-x for XNA(4)——中文显示

Cocos2d-x中文显示,似乎还没有非常完美的解决方法,一切的根源还是UTF-8编码问题。

我选择了CCLabelBMFont结合位图坐标文件(.fnt)显示,CCLabelBMFont优于CCLabelTTF是因为CCLabelBMFont每次改变只改变图片坐标,而CCLabelTTF需要重新渲染。

1.修改.cpp编码方式

选中.cpp文件,点击菜单“文件”-〉“高级保存项”,选择“Unicode(UTF-8无签名)-代码页65001”编码。

2.制作位图坐标文件.fnt文件

工具:Bitmap font generator

下载:http://www.angelcode.com/products/bmfont/

使用方法参考:http://blog.csdn.net/runnerx/article/details/6045876中“二. 中文字体定义: Default_Chinese.fontDefinition”

需要注意:

开始创建的中文字符文本文件另保存为编码格式为“UTF-8”

我添加了中文字符.txt文本文件

3.添加.fnt和.png

完成位图坐标文件文件制作后,添加到工程项目下Assets文件夹中的fonts文件夹下。

注意.fnt文件属性中的“包括在项目中”的值为“True”。

4.使用CCLabelBMFont显示中文

在前面的代码基础上添加如下代码

1     //显示中文
2     CCLabelBMFont* pLableCN = CCLabelBMFont::labelWithString("国强", "fonts/YaHeiChinese.fnt", CCTextAlignmentRight, 32);
3     pLableCN->setPosition(ccp(s.width / 2, s.height /10));
4     this->addChild(pLableCN);

运行显示效果

问题

当需要显示三个中文字符时出错,似乎单数个字符都会出错。

显示四个中文时成功

中文字符.txt文本文件

希望知道原因的朋友指点指点原因。

 

著作权声明:本文由http://www.cnblogs.com/suguoqiang 原创,欢迎转载分享。请尊重作者劳动,转载时保留该声明和作者博客链接,谢谢!

posted @ 2013-03-15 16:12  Ghost Soar  阅读(2633)  评论(3编辑  收藏  举报