【玩转cocos2d-x之十七】cocos2d-x中文显示

cocos2d-x的中文显示其实就是一个UTF-8编码在作怪而已,一种简单的方法就是把文本保存为UTF-8编码即可(注意不是UTF-8 + BOM),建议使用UE,Sublime Text或者EditPlus之类的本文编辑器。这里介绍另一种方法:通过读取xml文件显示中文,这种方法更利于软件的国际化,demo顺便实现了中英文切换。

xml文件

先写好一个xml文件(CHN_Strings.xml)。注意记得要以UTF-8编码保存。格式很简单,一个key对应一个string的键值对。如下:

<dict>  
    <key>language</key>  
    <string>English</string>  
    <key>username</key>  
    <string>偶尔e网事</string>  
    <key>website</key>  
    <string>CSDN博客:http://blog.csdn.net/jackystudio</string>  
</dict>  

通过CCDictionary读取xml

CCDictionary是利用哈希表算法来进行CCObject管理的一个类。这里不再对它的API及内部实现进行说明了。

创建词典类实例

1
CCDictionary *chnStrings = CCDictionary::createWithContentsOfFile("CHN_Strings.xml");

通过键(key)获取值(value)

1
const char *username = ((CCString*)chnStrings->objectForKey("username"))->m_sString.c_str();

使用value

1
2
3
CCLabelTTF* pLabel = CCLabelTTF::create(username, "Arial", 24);//这里创建一个文本  
pLabel->setPosition(ccp(origin.x + visibleSize.width/2,origin.y + visibleSize.height - pLabel->getContentSize().height));
this->addChild(pLabel, 1);

效果

这里我用了2个xml,一个是中文,一个是英文,设置了一个菜单,点击即可调用不同的xml进行中英文的切换,效果如下图。



源码下载

源码下载

文章目录
  1. 1. xml文件
  2. 2. 通过CCDictionary读取xml
    1. 2.1. 创建词典类实例
    2. 2.2. 通过键(key)获取值(value)
    3. 2.3. 使用value
  3. 3. 效果
  4. 4. 源码下载
,