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

原文: 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”编码。

Learning Cocos2d-x for WP8(4)——中文显示_第1张图片

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

工具:Bitmap font generator

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

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

需要注意:

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

Learning Cocos2d-x for WP8(4)——中文显示_第2张图片

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

Learning Cocos2d-x for WP8(4)——中文显示_第3张图片

3.添加.fnt和.png

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

Learning Cocos2d-x for WP8(4)——中文显示_第4张图片

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

Learning Cocos2d-x for WP8(4)——中文显示_第5张图片

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);

Learning Cocos2d-x for WP8(4)——中文显示_第6张图片

运行显示效果

Learning Cocos2d-x for WP8(4)——中文显示_第7张图片

问题

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

Learning Cocos2d-x for WP8(4)——中文显示_第8张图片

显示四个中文时成功

Learning Cocos2d-x for WP8(4)——中文显示_第9张图片

中文字符.txt文本文件

Learning Cocos2d-x for WP8(4)——中文显示_第10张图片

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

 

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

你可能感兴趣的:(cocos2d-x)