来自:http://www.cnblogs.com/TopWin/archive/2012/09/12/2682042.html

近期看cocos2d-x 2.0.2公布后升级了一下。升级后发现又出现了非常多错误,原来有一些地方的代码使用方法改变了。在改动代码的过程中。简单做了一些记录,当做是一个备忘录。

1、CCScene和CCLayer的初始化统一用create()函数进行创建。

//升级前代码
CCScene *scene=NULL;
do
{
scene=CCScene::node();
CC_BREAK_IF(!scene);
GameScene *layer=GameScene:: node();
CC_BREAK_IF(!layer);
scene->addChild(layer);
}while(0);
//升级后代码
CCScene *scene=NULL;
do
{
scene=CCScene::create();
CC_BREAK_IF(!scene);
GameScene *layer=GameScene:: create();
CC_BREAK_IF(!layer);
scene->addChild(layer);
}while(0);

2、取消了CCMutableArray,借用CCArray来取代

//升级前代码
//定义
CCMutableArray<cocos2d::CCSprite *> *GameScene::snakeSprites=NULL; //初始化
snakeSprites=new CCMutableArray<CCSprite *>(len); //遍历
for(int i=1;i<len;i++)
{
part=world->snake->parts->getObjectAtIndex(i);
}
//升级后代码
//定义
CCArray* GameScene::snakeSprites = NULL; //初始化
snakeSprites = new CCArray(len); //遍历
for(int i=1;i<len;i++)
{
part=(SnakePart*)world->snake->parts->objectAtIndex(i);
}

另外。CCArray能够通过CCARRAY_FOREACH来进行遍历。

CCArray* array1 = new CCArray();

CCObject* arrayItem;
CCARRAY_FOREACH(array1, arrayItem){
CCSprite* pItem = (CCSprite*)(arrayItem);
}

3、cocos2d::ccTime统一用float进行取代。

//升级前代码
void updateReady(cocos2d::ccTime dt);
//升级后代码
void updateReady(float dt);

4、CCTouchDispatcher::sharedDispatcher()和CCDirector::sharedDirector()合并

//升级前代码
CCTouchDispatcher::sharedDispatcher()->addTargetedDelegate(this,kCCMenuTouchPriority,true);
//升级后代码
CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this, kCCMenuHandlerPriority, true);

5、一些get、set函数发生改变,比方setIsVisible变成setVisible,setIsTouchEnabled变成等setTouchEnabled等等。

//升级前代码
snakeSprite->setIsVisible(isVisible); this->setIsTouchEnabled(true);
//升级后代码
snakeSprite->setVisible(isVisible); this->setTouchEnabled(true);

其他的改变在使用过程中假设再遇到再继续加入。

升级到cocos2d-x 2.0.2代码差异的更多相关文章

  1. 升级时出现:请先升级 UCenter 到 1.6.0 以上版本。

    有的站点UCenter升级完成后仍然提示请先升级 UCenter 到 1.6.0 以上版本的现象,下面分享下UCenter版本号不正确的原因和处理办法,可能有以下的几个文件和处理办法: 一.UCent ...

  2. phpMyAdmin - 错误 您应升级到 MySQL 5.5.0 或更高版本,解决办法。。。

    折腾自己的个人网站,装了个数据库管理工具,遇到您应升级到 MySQL 5.5.0 或更高版本... 采用降级phpmyadmin版本的方法解决了: 查找phpmyadmin/libraries/com ...

  3. iOS:xCode7版本运行xCode8.0的代码

    怎么在xCode7版本上运行xCode8.0的代码? 1.右键你的"LaunchScreen.sb"文件并用编辑器打开sb 2.删掉"<capability nam ...

  4. #if 0在代码中的作用

    #if 0在代码中有2个作用. 1.作为行内注释 /**/是多行注释,如果想在/**/里面嵌套一个多行注释,怎么办呢? /* int a=10; /* - (void)test{ NSLog(@&qu ...

  5. 高屋建瓴 cocos2d-x-3.0架构设计 Cocos2d (v.3.0) rendering pipeline roadmap(原文)

    Cocos2d (v.3.0) rendering pipeline roadmap Why (the vision) The way currently Cocos2d does rendering ...

  6. itest 开源测试管理项目中封装的下拉列表小组件:实现下拉列表使用者前后端0行代码

    导读: 主要从4个方面来阐述,1:背景:2:思路:3:代码实现:4:使用 一:封装背景       像easy ui 之类的纯前端组件,也有下拉列表组件,但是使用的时候,每个下拉列表,要配一个URL ...

  7. [2019BUAA软工助教]第0次代码作业

    [2019BUAA软工助教]第0次代码作业 前言 本博客为完成结对项目所需的先导知识,题目不难,请认真对待 :) 欢迎来到软件工程 :) 注:本次实验为附加作业,不做不扣分,做了有附加分 Part 0 ...

  8. [2019BUAA软工]第0次代码作业

    Visual Studio 单元测试的简单应用 写在前面   笔者根据作业的介绍以及Visual Studio 2017 文档的相关说明,进行了Visual Studio 单元测试的简单应用. Tip ...

  9. AS3.0纯代码编写的两款loading效果

    AS3.0纯代码编写的两款loading效果 效果一 效果二 代码很简单,实现的原理一样,只不过矩形用到了Matrix类,对注册点进行了调整,效果可用于视频播放器缓冲时的loading效果,下面看代码 ...

随机推荐

  1. android怎样查看当前project哪些profile是打开的

    代码project里面有三仅仅文件都是涉及到各个profile的宏的,各自是:featureoption.java.common/ProjectConfig.mk.product/ProjectCon ...

  2. window应用移植到Linux下(应用移植)

     配置QT的环境变量,这台电脑à属性à高级系统设置à高级à环境变量à系统变量àpathàC:\Qt\Qt5.3.0\5.3\mingw482_32\bin;C:\Qt\Qt5.3.0\Tools\ ...

  3. CacheHelper工具类的使用

    package com.bbcmart.util; import net.sf.ehcache.Cache; import net.sf.ehcache.CacheManager; import ne ...

  4. httpclient超时总结(转)

    Httpclient超时 背景: 网站这边多次因为httpclient调用超时时间没设置好导致关掉,影响非常不好,而且问题重复出现,查看网络,没有比较明确介绍httpclient所有超时相关的设置(大 ...

  5. adm下载器

    netdisk;5.2.7;PC;PC-Windows;6.2.9200;WindowsBaiduYunGuanJia

  6. 番外:android模拟器连不上网

    1.删除你PC端得备用DNS,只留一个即可.确保能够上网. 注意:这个虽然不是必须的,出错点也不一定在他,但是我建议这样做,因为我们不确定到底模拟器和我们的PC是否使用的是一个DNS,不是的话,就会造 ...

  7. CSDN博客的一些问题(友好的吐槽)--后记,有一点点改进

    近期,CSDN博客真的非常不稳定,时常会出现503错误. 昨天.我发现自己的博客的訪问量仅仅有4万多,今天最终发现它变回原来的6万多了. 我写博客不是为了这个訪问量,可是,CSDN这点使用问题啦. 或 ...

  8. python六核心编程——条件和循环

    1.if声明 单 if 通过使用布尔运算符的声明 and , or 和 not. if-elif-else. elif即else if if expression1:      expr1_true_ ...

  9. Eclipse设置的断点失效的解决办法

    使用Eclipse的同胞们,如果你哪天惊奇的发现调试时,明明设置了断点,按道理就是要执行设置断点的那条语句的,可是偏偏Eclipse视你设置的断点不见,不要害怕,不要恐慌,这样的问题不应该导致偶们疯狂 ...

  10. 在IIS上发布Web(使用VS2005)

    最近想在IIS上发布网站,弄了一下午.遇到很多问题,幸运的是都一一解决了,现在把解决问题的过程分享出来: 安装好IIS后,在VS2005上写了个网站(新建-->网站-->ASP.NET网站 ...