初识cocos2dx遇到的问题.docx

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
初识cocos2dx遇到的问题

---!!!!!!----------------------------------精品文档,值得下载,可以编辑!!!-----------------------------!!!!!!----------- ---!!!!!!----------------------------------精品文档,值得下载,可以编辑!!!-----------------------------!!!!!!----------- 1、这是本人书写一个简单单例模式时遇到的一个小问题,在这儿也提一下,经验积累 。。 代码: #ifndef?_MAPPART_H_ #define?_MAPPART_H_ #include?iostream using?namespace?std; class?MapPart { public: ~MapPart(void); static?MapPart*?Instance(); private: MapPart(void); static?MapPart*?pMap; }; MapPart::pMap?=?NULL; #endif 前面少了个类型 MapPart* MapPart::pMap = NULL; 2、打开下载好的cocos2dx最新版本 将其植入到相应的vs版本中,然后新建项目 此时会有一个默认的HelloWorld生成 运行helloWorld将会出现以下找不到文件路径的错误 这就不需要再去修改项目路径了,那样就要制定相对路径,程序拷贝到其他机器运行时,还要重新设置路径,这样不方便,那么我们的解决方案就是: @1、运行下载好的cocos2dx @2、将其中以下的项目都生成以下: 这样就得到了debug里的.dll和.lib库文件 。。 接下来我们需要做的就是将cocos2dx下的Debug.win32文件下的所有.dll和.lib文件拷到之前我们运行的新建项目的Debug.win32文件下 。。 @3、将下面的文件夹拷到新建项目路径里面: OK编译通过,不过运行时,可能会出现以下问题。。 3、使用cocos2dx遇到的首个问题,就是下载了引擎的最新版本,运行,结果提示 点击,忽略,还是不行,解决方案是,此机器上没有安装显卡驱动。。当安装之后,重启电脑重新运行就不会出现此错误了。 Cocos2dx中引入中文字库,或使用CCLabelBMFont创建图片文字时遇到的问题,资源都有了,就是运行报错,这是很郁闷的问题 。。 代码: CCLabelBMFont* pLable = CCLabelBMFont::create(中国, chineseFont.fnt); 我先是将文件保存为带签名的UTF-8格式,后来不断的探索还是出错,结果在认真比较cocos2dx下的tests之后才发现它保存的是 无签名的UTF-8格式,表示灰常郁闷,不过错误成功解决 。。 注:在带签名的UTF-8格式下时,里面的汉字就已经保存为中文的编码格式了,所以在在LableBMFont里面的setString转码时,它就不能正确的转为中文了,而在无签名的UTF-8格式下时,中文显示是乱码,但是在setString时能正常的将乱码转换为中文,所以element就不会报错了,一切OK了,可是这里遇到一个当你输入的字串以“!”、“市”结束或字符串只有单个字体时,代码报错,这是为什么呢??我也不知道啊 。。诡异的是先输入单个字体时在其后面加空格不会报错,但结果是显示乱码,表示伤不起啊 。。 对于上面的问题简而言之,还是转码的问题 。。发现一个小秘密就是当将中文转化为UTF8格式后,再放入字体中就能正常使用了 。。 网上摘抄的转码源代码,很有用 。。 inline std::string WideByte2UTF8(const wstring text) { int asciisize = ::WideCharToMultiByte(CP_UTF8, 0, text.c_str(), text.size(), NULL, 0, NULL, NULL); if (asciisize == ERROR_NO_UNICODE_TRANSLATION || asciisize == 0) { return string(); } char* resultstring = new char[asciisize]; int convresult = ::WideCharToMultiByte(CP_UTF8, 0, text.c_str(), text.size(), resultstring, asciisize, NULL, NULL); if (convresult != asciisize)

文档评论(0)

xvli2 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档