解决cocos2dx在Windows平台中文乱码问题
首页 > cocos2dx专栏 > cocos2dx学习    作者:闭眼就天黑   2015年11月11日 10:21 星期三   热度:7930°   百度已收录  
时间:2015-11-11 10:21   热度:7930° 

在使用cocos2dx 的label标签做菜单时候,想给菜单中文名称,但是运行后出现的是乱码问题,这个问题在cocos2dx的版本都存在。解决此类问题最直接的方法是使用图片菜单来解决,当然我们这次是非要用label文字来解决。

中文乱码测试代码:

 //创建label标签菜单
 auto label_gameplay = LabelTTF::create("开始游戏", "fonts/Marker Felt.ttf", 24);  
 auto label_gameset = LabelTTF::create("游戏设置", "fonts/Marker Felt.ttf", 24);  
 auto label_gamequit= LabelTTF::create("退出游戏", "fonts/Marker Felt.ttf", 24);
 //设置菜单坐标位置
   label_gameplay->setPosition(Vec2(origin.x + visibleSize.width/2,
                           origin.y + visibleSize.height/2+100));
   label_gameset->setPosition(Vec2(origin.x + visibleSize.width/2,
    origin.y + label_gameplay->getPositionY()-50));
   label_gamequit->setPosition(Vec2(origin.x + visibleSize.width/2,
    origin.y + label_gameset->getPositionY()-50));
   //添加进图层
   this->addChild(label_gameplay);
   this->addChild(label_gameset);
   this->addChild(label_gamequit);

使用此代码运行后,就会看到我们所谓的乱码界面了。

解决cocos2dx在Windows平台中文乱码问题

 

下面我们就使用读取xml配置文件的方式来解决此问题。首先我们在我们的资源目录Resources里创建一个xml文件,我们把它命名为“zhongwen.xml”。然后按照一定的格式写入数据。

xml文件代码案例:

<?xml version="1.0" encoding="utf-8"?>
<plist version="1.0">  
<dict>  
 <key>gameplay</key>  
  <string>开始游戏</string>
 <key>gameset</key>  
  <string>游戏设置</string>
 <key>gamequit</key>  
  <string>退出游戏</string>
</dict>  
</plist>

使用xml键值对的形式来存储我们的游戏文字,这样我们读取相应的key键就可以得到我们想要的value值。

我们用cocos2dx给出的Dictionary这个类提供的方法来操作。

1、首先加载我们的xml配置文件。

Dictionary *strings = Dictionary::createWithContentsOfFile("zhongwen.xml");
//加载xml文件

2、然后查找xml文件的key键

 const char *gameplay=((String*)strings->objectForKey("gameplay"))->getCString(); //查找xml文件key值
 const char *gameset=((String*)strings->objectForKey("gameset"))->getCString(); //查找xml文件key值
 const char *gamequit=((String*)strings->objectForKey("gamequit"))->getCString(); //查找xml文件key值

3、label标签实现中文匹配

 auto label_gameplay= LabelTTF::create(gameplay,"fonts/Marker Felt.ttf", 24);  
 auto label_gameset= LabelTTF::create(gameset,"fonts/Marker Felt.ttf", 24);  
 auto label_gamequit= LabelTTF::create(gamequit,"fonts/Marker Felt.ttf", 24);

到此我们就可以来测试运行我们的程序了,看看我们的解决结果。

解决cocos2dx在Windows平台中文乱码问题2.png

到此中文乱码的问题就解决了,当然还有其他解决方案,不过我觉得还是这个方法最简单。哈哈,天冷了,就不多说了,说多了就暴露了。

 

二维码加载中...
本文作者:闭眼就天黑      文章标题: 解决cocos2dx在Windows平台中文乱码问题
本文地址:https://www.byjth.com/biji/39.html
版权声明:若无注明,本文皆为“闭眼就天黑专栏_技术博客_个人学习总结”原创,转载请保留文章出处。
相关文章

版权所有:《闭眼就天黑专栏_技术博客_个人学习总结》 => 《解决cocos2dx在Windows平台中文乱码问题
本文地址:https://www.byjth.com/biji/39.html
除非注明,文章均为 《闭眼就天黑专栏_技术博客_个人学习总结》 原创,欢迎转载!转载请注明本文地址,谢谢。

返回顶部    首页    手机版本    版权所有:闭眼就天黑专栏_技术博客_个人学习总结
    站长: 闭眼就天黑    搜索cocos2dx主题 技术支持:闭眼就天黑   皖ICP备14007736号-1  

皖公网安备 34132102000107号

   sitemap