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适用
Value(int).asString();// 函数里面调用的是  std::stringstream ret;
char str[255];
sprintf(str, "***%d**", index); 这种 太麻烦了  好累
  • 函数赋值空
 std::function<void(void)> //赋值空 应该用 nullptr
  • 动画暂停到某一帧
//action->setCurrentFrame(10 * n);//这个看起来很像但是不行
action->gotoFrameAndPause(10 * n);
  • boolean bool
    不要使用boolean在编译android的时候报错
  • string
#include <string>  //#include <string.h> 不要使用后者 (我当时的情况就不能用后者 android编译出错)
  • android解析
来源于互联网
bool AppDelegate::isFileExist(const char* pFileName)

{

    if (!pFileName) return false;

    std::string filePath = FileUtils::getInstance()->getWritablePath();

    filePath += pFileName;

    FILE *fp = fopen(filePath.c_str(), "r");

    if (fp) {
        fclose(fp);
        return true;
    }
    return false;

}

void AppDelegate::copyData(const char* pFileName)
{
    if (isFileExist(pFileName)) {
        return;
    }
    std::string strPath = FileUtils::getInstance()->fullPathForFilename(pFileName);
    ssize_t len = 0;
    unsigned char *data = NULL;

    data = FileUtils::getInstance()->getFileData(strPath.c_str(), "r", &len);

    std::string destPath = FileUtils::getInstance()->getWritablePath();

    destPath += pFileName;

    FILE *fp = fopen(destPath.c_str(), "w+");

    fwrite(data, sizeof(char), len, fp);

    fclose(fp);

    delete[]data;

    data = NULL;

}
《Cocos2d-x实战:C++卷》[1] 系统论述了Cocos2d-x游戏开发理论与实践。全书内容涵盖了Cocos2d-x的核心类、瓦片地图、物理引擎、音乐音效、数据持久化、网络通信、数据交换格式、内存管理、性能优化、平台移植、程序代码管理、三大应用商店发布产品等。本书共29章,按内容结构可分为六篇: 第一篇开发基础,即第2章~第8章,内容包括Cocos2d-x简介、环境搭建、字符串、标签、菜单、精灵、场景、层、动作、特效、动画和Cocos2d-x用户事件。 第二篇开发进阶,即第9章~第12章,内容包括游戏音乐与音效、粒子系统、瓦片地图和物理引擎。 第三篇数据与网络,即第13章~第17章,内容包括Cocos2d-x中使用的数据容器类、数据持久化、数据交换格式、基于HTTP网络通信和基于Node.js的Socket.IO网络通信。 第四篇设计与优化,即第18章~第20章,内容包括Cocos2d-x中的常用设计模式、Cocos2d-x中的内存管理和性能优化。 第五篇平台移植,即第21章~第23章,内容包括从Win32到Android平台的移植、从Win32到WindowsPhone8平台的移植和从Win32到iOS平台的移植。 第六篇开发实战,即第24章~第29章,内容包括使用Git管理程序代码和多个项目实战——迷失航线手机游戏项目开发、为迷失航线游戏添加广告、发布放到Googleplay应用商店、发布放到WindowsPhone应用商店和发布放到苹果AppStore。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值