今天用cocos studio加了一個TextBMFont控件,然後需要動態修改TextBMFont控件顯示的字符串,用來顯示中文的,結果一直無法修改TextBMFont控件的值,最後原來是寫到xml文件的中文字符串沒有保存成UTF-8格式。
=====================================================================================
記錄一下完整實現步驟
一、製作BMFont字體
1、下載並安裝BMFont軟件
2、因爲要用到中文字符,所以要進行字體設置。選項->字體設置
3、設置導出設置,選項->輸出設置
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"