预览加载中,请您耐心等待几秒...
在线预览结束,喜欢就下载吧,查找使用更方便
如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
本文由麦可网HYPERLINK"http://www.microoh.com/"http://www.microoh.com/收集整理,转载请注明出处。cocos2d-x显示中文的问题现在许多人都选择使用COCOS2D-X作为2D游戏引擎开发跨平台的智能手机游戏,有些朋友主要从苹果向WINDOWS平台转换;另外一部分则是相反地方向。无论如何,都面对一个中文的问题-除非你不做中文版本。且看后者,这其中的大多数用户都是基于WINDOWS+VS平台先编译WIN32版本的COCOS2D-X游戏,再基于ECLIPSE等平台编译,最后再安装到手机上。本人探讨的是,在VS2010+WINDOWS7下如何显示中文的问题(当然,也有一个在将来的手机平台的显示问题)。先看下面的转载文章//我在WIN32开发是这样解决的.#ifdefWIN32#defineUTEXT(str)GBKToUTF8(str)#else#defineUTEXT(str)str#endif#ifdefWIN32#include"third_party/win32/iconv/iconv.h"staticcharg_GBKConvUTF8Buf[5000]={0};constchar*GBKToUTF8(constchar*strChar){iconv_ticonvH;iconvH=iconv_open("utf-8","gb2312");if(iconvH==0){returnNULL;}size_tstrLength=strlen(strChar);size_toutLength=strLength<<2;size_tcopyLength=outLength;memset(g_GBKConvUTF8Buf,0,5000);char*utbuf=(char*)malloc(outLength);char*pBuff=outbuf;memset(outbuf,0,outLength);if(-1==iconv(iconvH,&strChar,&strLength,&outbuf,&outLength)){iconv_close(iconvH);returnNULL;}memcpy(g_GBKConvUTF8Buf,pBuff,copyLength);free(pBuff);iconv_close(iconvH);returng_GBKConvUTF8Buf;}#endif//使用的时候酱紫CCLabelTTF*pLabel=CCLabelTTF::labelWithString(UTEXT("开始游戏"),"Arial",24);//仅供参考...//PS:这样处理以后文件不必改成utf-8无签名编码了.另外的问题,请查看:原文:http://www.cnblogs.com/cocos2d-x/archive/2012/02/26/2368873.html很高兴你来到我的博客,同时也要感谢你对cocos2d-x引擎的支持。不过,既然你在这个时候来到这里,那八成是因为你遇到了麻烦——在你的cocos2d-x应用中,中文的显示似乎不太正常。虽然cocos2d-x是一个跨平台的2D游戏引擎,但是目前我只使用VC在Win32平台下学习她。如果你是在其他平台上做开发,那么这篇文章对你可能没有太大帮助,我建议你阅读cocos2d-x的代码,找出问题的关键,从而定制一个可行的解决方案。作为一名初学者,你必定像我一样跟着教程将代码敲进编辑器里,保存,编译,运行。却惊奇地发现中文字符串要么不显示了,要么显示成了乱码。心里想着,天啊,什么地方出问题了。然后打开百度、谷歌,搜索“cocos2d-x中文”。于是你找到了解决方案,要把文件保存为“无签名的UTF-8”编码。(这是最终可行的方案吗???-NONONO)按照上面的方法操作,编译,运行,这时你已经可以看到中文字符显示正常了。如果你还有别的什么重要的事情要做,没有时间听我在这里废话,那么你现在就可以点击窗口上的叉叉离开了。。。。。。。咳咳。。。你还在这里?你还想听听为什么会这样吗?额。。。好吧,那我就简单说一下。以创建一个label为例,当我们使用CCLabelTTF*CCLabelTTF::labelWithString(constchar*label,constchar*fontName,floatfontSize)来创建label的时候,实际上这里的constchar*参数期望的是UTF-8编码的字符串(你可以查看CCImage_win32.cpp中BitmapDC的drawText函数来印证我的说法),如果传入一