标签:
Cocos使用UTF8编码来处理文字, 要显示中文需要将中文转换为UTF8编码,这里使用xml来保存文字资源。
StringResources_zh.xml
<?xml version="1.0" encoding="UTF-8"?> <plist version="1.0"> <dict> <key>hello_world</key> <string>你好,世界!</string> </dict> </plist>
StringResourcesManager.h
1 #ifndef StringResourcesManager_h__ 2 #define StringResourcesManager_h__ 3 #include "cocos2d.h" 4 USING_NS_CC; 5 6 class StringResourcesManager 7 { 8 public: 9 static StringResourcesManager* GetInstance() 10 { 11 if (Instance == NULL) 12 { 13 Instance = new StringResourcesManager(); 14 } 15 return Instance; 16 } 17 18 std::string GetString(const std::string& key) 19 { 20 return valueMap[key].asString(); 21 } 22 void DestroyInstance() 23 { 24 CC_SAFE_DELETE(Instance); 25 } 26 ~StringResourcesManager() 27 { 28 } 29 private: 30 static StringResourcesManager* Instance; 31 ValueMap valueMap; 32 CC_DISALLOW_COPY_AND_ASSIGN(StringResourcesManager); 33 StringResourcesManager() 34 { 35 if (Application::getInstance()->getCurrentLanguage() 36 == LanguageType::CHINESE) { 37 valueMap = FileUtils::getInstance()->getValueMapFromFile( 38 "text/StringResources_zh.xml"); 39 } 40 else { 41 valueMap = FileUtils::getInstance()->getValueMapFromFile( 42 "text/StringResources_en.xml"); 43 } 44 } 45 46 }; 47 48 StringResourcesManager* StringResourcesManager::Instance = nullptr; 49 50 #endif // StringResourcesManager_h__
使用
1 TTFConfig ttfConfig("fonts/simhei.ttf", 35, GlyphCollection::ASCII); 2 auto label = Label::createWithTTF(ttfConfig, StringResourcesManager::GetInstance()->GetString("hello_world"), TextHAlignment::CENTER, visibleSize.width); 3 label->setAnchorPoint(Vec2(0,1)); 4 label->setPosition(0,visibleSize.height); 5 this->addChild(label);
标签:
原文地址:http://www.cnblogs.com/xyzaabb/p/4326142.html