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 原創,歡迎轉載分享。請尊重作者勞動,轉載時保留該聲明和作者博客鏈接,謝謝!