cocos2d-x wp8 中文显示问题
来源:互联网 发布:mac官网唇膏体验装 编辑:程序博客网 时间:2024/05/17 08:14
cocos2d-x项目在wp8下中文显示不了,有两个原因:
1. 本身字符串的utf8编码, 有问题。
2. 显示中文所需要的字体,缺失。
要解决第二个问题很简单,在fonts下添加一个中文字体,在显示的时候制定此中文字体
labelArcade = CCLabelTTF::create("中文字符串", "中文字体名称",字体大小);
至于第一个问题,说的是不能像上文那样直接用字符串写“中文字符串”,解决方案有gb2312ToUnicode的方法,小转换一下子。百度一搜有很多示例代码,恕不赘言,因为这种办法并不是太好--总是要做多语言的嘛,我们本来也不会直接写上中文字符串在那里。
所以,我们建一个文件,专门放置中文字符(还有相应的专门放置英语、法语、西班牙语的文件),然后通过读取文件的方式,读过来的字符串自然已经utf8编码过:
labelArcade = CCLabelTTF::create(localizeUtil::getLocalizeStringByKey("mode_arcade"), localizeUtil::getLocalizeFontName(), localizeUtil::getFontSizeH2());
另附localizeUtil的实现:
localizeUtil.h
class localizeUtil{public:static bool init();static const char* getLocalizeStringByKey(std::string key);static const char* getLocalizeFontName();static const float getFontSizeH1();static const float getFontSizeH2();static const float getFontSizeH3();static const float getFontSizeH4();static const float getFontSizeH5();};
localizeUtil.cpp
#include "localizeUtil.h"#include "cocos2d.h"USING_NS_CC;static char* fontName;static char* fontNameChinese;static char* fontNameEnglish;static char* languageMappingFolder;static char* resourcePath;const char* localizeUtil::getLocalizeStringByKey(std::string key){CCDictionary *chnStrings = CCDictionary::createWithContentsOfFile(resourcePath);const char *value = ((CCString*)chnStrings->objectForKey(key))->getCString();return value;}const char* localizeUtil::getLocalizeFontName(){return fontName;}const float localizeUtil::getFontSizeH1(){return 50;}const float localizeUtil::getFontSizeH2(){return 40;}const float localizeUtil::getFontSizeH3(){return 30;}const float localizeUtil::getFontSizeH4(){return 20;}const float localizeUtil::getFontSizeH5(){return 16;}bool localizeUtil::init(){fontNameChinese = "SimpleGB2312";fontNameEnglish = "Arial";resourcePath = "local/s%/strings.xml";const char* lc = CCApplication::getInstance()->getCurrentLanguageCode();ccLanguageType currentLanguageType = Application::getInstance()->getCurrentLanguage();switch (currentLanguageType){case kLanguageChinese:fontName = fontNameChinese;languageMappingFolder = "zhcn";resourcePath = "local/zhcn/strings.xml";break;case kLanguageEnglish:fontName = fontNameEnglish;languageMappingFolder = "enus";resourcePath = "local/enus/strings.xml";break;case kLanguageSpanish:fontName = fontNameEnglish;languageMappingFolder = "es";resourcePath = "local/es/strings.xml";break;case kLanguageFrench:fontName = fontNameEnglish;languageMappingFolder = "fr";resourcePath = "local/fr/strings.xml";break;default:fontName = fontNameEnglish;languageMappingFolder = "enus";resourcePath = "local/enus/strings.xml";}return true;}
目录结构:
strings.xml
<dict> <key>mode</key> <string>Mode</string> <key>mode_classic</key> <string>Classic</string></dict>
0 0
- cocos2d-x wp8 中文显示问题
- cocos2d-x wp8 中文显示问题 - 字体库太大
- cocos2d-x中文显示问题
- cocos2d-x中文显示问题
- cocos2d-x中文显示问题
- cocos2d-x中文显示问题
- 关于cocos2d-x移植到WP8之上的中文乱码问题
- cocos2d-x显示中文
- Cocos2d-x--中文显示
- cocos2d-x 中文显示
- Cocos2d-x移植WP8时CCScrollView的问题
- cocos2d-x的中文显示
- cocos2d-x 显示中文字符
- cocos2d中文显示问题
- cocos2d-x 打印中文、显示中文
- cocos2d-x 中文 乱码问题
- cocos2d-x 中文支持问题
- cocos2d-x 中文支持问题
- realloc的全面解析
- 7.29 继续完善计算器界面
- Eclipse设置tab键为空格键缩进
- 获取视频文件的缩略图
- THE DEAD-SIMPLE STEP-BY-STEP GUIDE FOR FRONT-END DEVELOPERS TO GETTING UP AND RUNNING WITH NODE.JS,
- cocos2d-x wp8 中文显示问题
- EJB到底是什么,真的那么神秘吗??
- Android无线调试
- log4j.properties解析
- 080003 行事贵以专
- hd 2099 整除的尾数
- 搭建Python开发环境
- Human Gene Functions (poj 1080)
- 睡得晚平台开票人胃口也特容易