cocos2d-x學習筆記(六)TextBMFont控件顯示中文亂碼或者無法顯示

    今天用cocos studio加了一個TextBMFont控件,然後需要動態修改TextBMFont控件顯示的字符串,用來顯示中文的,結果一直無法修改TextBMFont控件的值,最後原來是寫到xml文件的中文字符串沒有保存成UTF-8格式。

=====================================================================================

記錄一下完整實現步驟

一、製作BMFont字體

1、下載並安裝BMFont軟件

2、因爲要用到中文字符,所以要進行字體設置。選項->字體設置

wKiom1fOMZeQXfvUAACG_Tiyi6g902.png

3、設置導出設置,選項->輸出設置

wKioL1fOMgjSzq92AACAi8qEbnI743.png

4、新建txt文本,輸入所需要的字符,然後另存爲UTF-8格式,否則軟件不識別

5、回到BMFont軟件,編輯->從文件中選擇字符,找到剛纔保存的txt文本

6、選項->位圖字體另存爲,這樣就生成了fnt和png格式的文件


二、新建XML文件

由於cocos2d-x直接使用會出現亂碼,這裏我們使用將中文字符寫到xml文件中的方法。注意文件編碼要保存爲UTF-8,xml文檔格式如下

<dict>  
    <key>hello</key>  
    <string>你好</string>  
    <key>world</key>  
    <string>世界</string>  
</dict>


三、代碼中解析

auto m_res = CSLoader::createNode("test.csb");
if(m_res == nullptr)
{
return false;
}
addChild(m_res);
ui::TextBMFont* show = dynamic_cast<ui::TextBMFont*>(chestTip->getChildByName("Show"));
//創建詞典類實例
auto config = Dictionary::createWithContentsOfFile("Config.xml");
const char *hello = ((String*)config->objectForKey("hello"))->getCString();
show>setString(hello);


注:test.csb是在cocos studio下導出的文件,

需要#include "../cocos/editor-support/cocostudio/CocoStudio.h" 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章