cocos2dx and c++ 的小坑

前端之家收集整理的这篇文章主要介绍了cocos2dx and c++ 的小坑前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
  • char[] 大小
    char[x]
    当时没注意这个 因为需求中 这里需要格式化的只有1、2、3、4这几种情况都是大小为1的 结果出现如下错误
    原因应该是 只能容下 x-1 个字符 必须保留最后一个字符作为结尾判断 否则不知道如何释放

    Run-Time Check Failure #2 - Stack around the variable ‘str’ was corrupted.
  • int[] 赋值

    最容易想到的赋值方式却出问题了要用以下的赋值方式
    memcpy(mMapView,b.barriers,sizeof(b.barriers));

  • cocos2d-x调用scheduleUpdate()不执行update()方法解决办法
    网上搜出来的
    但是去掉方法这样肯定就不好了 如果你舍不得去掉onEnter方法 我们可以在子类中调用父类的对应方法 比如我的情况在自己实现的onEnter里面调用下Layer::onEnter();
    这个其实很容易想到的 至少ios开发中太多这种了

  • int string 转换 cocos2dx适用
  1. Value(int).asString();// 函数里面调用的是 std::stringstream ret;
  2. char str[255];
  3. sprintf(str,"***%d**",index); 这种 太麻烦了 好累
  1. std::function<void(void)> //赋值空 应该用 nullptr
  • 动画暂停到某一帧
  1. //action->setCurrentFrame(10 * n);//这个看起来很像但是不行
  2. action->gotoFrameAndPause(10 * n);
  • boolean bool
    不要使用boolean在编译android的时候报错
  • string
  1. #include <string> //#include <string.h> 不要使用后者 (我当时的情况就不能用后者 android编译出错)
  • android解析
  1. 来源于互联网
  2. bool AppDelegate::isFileExist(const char* pFileName)
  3.  
  4. {
  5.  
  6. if (!pFileName) return false;
  7.  
  8. std::string filePath = FileUtils::getInstance()->getWritablePath();
  9.  
  10. filePath += pFileName;
  11.  
  12. FILE *fp = fopen(filePath.c_str(),"r");
  13.  
  14. if (fp) {
  15. fclose(fp);
  16. return true;
  17. }
  18. return false;
  19.  
  20. }
  21.  
  22. void AppDelegate::copyData(const char* pFileName)
  23. {
  24. if (isFileExist(pFileName)) {
  25. return;
  26. }
  27. std::string strPath = FileUtils::getInstance()->fullPathForFilename(pFileName);
  28. ssize_t len = 0;
  29. unsigned char *data = NULL;
  30.  
  31. data = FileUtils::getInstance()->getFileData(strPath.c_str(),"r",&len);
  32.  
  33. std::string destPath = FileUtils::getInstance()->getWritablePath();
  34.  
  35. destPath += pFileName;
  36.  
  37. FILE *fp = fopen(destPath.c_str(),"w+");
  38.  
  39. fwrite(data,sizeof(char),len,fp);
  40.  
  41. fclose(fp);
  42.  
  43. delete[]data; data = NULL; }

猜你在找的Cocos2d-x相关文章