游戏开发引擎—cocos2d-x显示中文与字幕滚动--之游戏开发《赵云要格斗》

游戏开发引擎—cocos2d-x显示中文与字幕滚动--之游戏开发《赵云要格斗》

ID:34781237

大小:178.18 KB

页数:16页

时间:2019-03-10

游戏开发引擎—cocos2d-x显示中文与字幕滚动--之游戏开发《赵云要格斗》_第1页
游戏开发引擎—cocos2d-x显示中文与字幕滚动--之游戏开发《赵云要格斗》_第2页
游戏开发引擎—cocos2d-x显示中文与字幕滚动--之游戏开发《赵云要格斗》_第3页
游戏开发引擎—cocos2d-x显示中文与字幕滚动--之游戏开发《赵云要格斗》_第4页
游戏开发引擎—cocos2d-x显示中文与字幕滚动--之游戏开发《赵云要格斗》_第5页
资源描述:

《游戏开发引擎—cocos2d-x显示中文与字幕滚动--之游戏开发《赵云要格斗》》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、游戏开发引擎—Cocos2d-x显示中文与字幕滚动--之游戏开发《赵云要格斗》(14)本文检索关键词:游戏引擎,游戏开发引擎,cocos引擎html5游戏开发本文将要解决Cocos2d-x中显示中文时出现乱码的情形,并且实现一个字幕滚动的功能,这个功能是通过遮罩来实现的。Cocos2d-x版本:2.2.5工程环境:windows7+VS2010打开方式:将工程放在Cocos2d-x安装目录下的project文件夹下用VS打开先来看看效果:在windows环境下使用visualstudio开发Cocos2d-x,由于visualstudio默认编码为GBK格式,而cocos2d-

2、x引擎默认编码为UTF-8,如果有用到中文,在游戏运行时有可能会出现乱码的情况,这个问题一般有三种解决方案,如下:(1)将源码文件保存为utf-8格式(不建议,治标不治本)(2)自己编写编码转换代码,在用到中文的地方手动转换(3)将显示文本单独保存为文本文件(该文件编码为utf-8),由系统统一模块管理文本读取显示,建议使用这种方式,便于后期系统维护,并实现国际化。第一种方式很简单就不不介绍了,下面将对第2种进行介绍。第3种还没写好。一、自己编写编码转换代码,在用到中文的地方手动转换。Cocos2d-x的开发包内置了用于编码转换的iconv库,头文件"iconv.h"。icon

3、v命令可以将一种已知的字符集文件转换成另一种已知的字符集文件。它的作用是在多种国际编码格式之间进行文本内码的转换。1、直接把代码写进要用到的地方如果是只能到一次的话,推荐可以这么做。(1)首先,新建一个工程,然后在HelloWorldScene.cpp中添加头文件#include"iconv/iconv.h"/,(2)然后在HelloWorldScene.cpp添加全局函数(记得要把它们放在所有函数的最上头,要不就是最上头再定义函数一下)1234bool IConvConvert(const char *from_charset, const char *to_charset,

4、 const char *inbuf, int inlen, char *outbuf, int outlen)  {      iconv_t cd = iconv_open(to_charset, from_charset);  567891011121314151617    if (cd == 0) return false;      const char **pin = &inbuf;      char **pout = &outbuf;      memset(outbuf,0,outlen);      size_t ret = iconv(cd,pin,(s

5、ize_t *)&inlen,pout,(size_t *)&outlen);      iconv_close(cd);      return ret == (size_t)(-1) ? false : true;     }  std::string IConvConvert_GBKToUTF8(const std::string& str)  {      const char* textIn = str.c_str();      char textOut[256];      bool ret = IConvConvert("gb2312", "utf-8", te

6、xtIn, strlen(textIn),textOut, 256);      return ret ? std::string(textOut) : std::string();  }1819运行之后报错:errorLNK2019:无法解析的外部符号_libiconv_closeerrorLNK2019:无法解析的外部符号_libiconverrorLNK2019:无法解析的外部符号_libiconv_openfatalerrorLNK1120:3个无法解析的外部命令解决方法:因为你没有加libiconv.lib文件 在工程属性->配置属性->链接器->输入->附加依赖项添

7、加libiconv.lib如下:(3)用法:在用到的地方,我这里是在init()里添加12std::string str =IConvConvert_GBKToUTF8("我是林炳文Evankaka~~欢迎来到我的世界~~~");  345CCLabelTTF* pLabel = CCLabelTTF::create(str.c_str(), "Arial", 24);  pLabel->setPosition(ccp(origin.x + visibleSize.width/2,   

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。