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 原创,欢迎转载分享。请尊重作者劳动,转载时保留该声明和作者博客链接,谢谢!