升级到cocos2d-x 2.0.2代码差异

来自: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);

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

时间: 2024-10-25 19:34:41

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

(原创)cocos2d-x 3.0 示例代码分析1:AppDelegate

星月最近在用3.0做类似刀塔游戏,第一次用3.0,之前一直只是查查资料,最近发现做一些特定行为需要对3.0一些新的特性了解.所以趁这个机会,把3.0的测试代码过一遍,同时增加注释,希望能对大家有帮助~ 因为项目原因,所以不定期更新~~(小白:借口,继续找借口!) 星月倾心贡献~~~ // AppDelegate.cpp /**************************************************************************** Copyright (

数据驱动安全架构升级---“花瓶”模型迎来V5.0(二)

数据驱动安全架构升级---"花瓶"模型迎来V5.0 Jackzhai 三."花瓶"模型V5. "花瓶"模型V5.0是从安全事件防护的角度,设计安全保障架构的.事前制定策略,部署防护措施,提高攻击门槛,阻断常规的入侵攻击:事中监控,动态检测渗透防护体系的入侵者,通过分析业务状态的异常,流量的异常,网络行为的异常,以及对各种恶意代码的检测,从多个角度展示安全态势与行为的关联分析,及时发现攻击者,并及时阻断攻击者的破坏行为:事后进行溯源.取证.合规性分

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

有的站点UCenter升级完成后仍然提示请先升级 UCenter 到 1.6.0 以上版本的现象,下面分享下UCenter版本号不正确的原因和处理办法,可能有以下的几个文件和处理办法: 一.UCenter 的文件没有上传完整,此时可以重新下载一份 UCenter 的程序(http://download.comsenz.com/UCenter/1.6.0/),重新覆盖程序后重新升级. 二.有可能是 discuz! X 没有访问到正确的 UCenter: 1)请检查您的目录下有几个 UCenter

数据驱动安全架构升级---“花瓶”模型迎来V5.0(一)

数据驱动安全架构升级---"花瓶"模型迎来V5.0 Jackzhai 一.背景 近十年,可以说是网络技术大发展的十年,云计算.大数据.移动互联.物联网等新技术逐渐成熟,社交.电商.智慧城市-现实社会正在全面走进网络所构建的虚拟世界,网络正在成为人们吃穿一样不可或缺的"生活必需品". 随着网络承载的事务越来越丰富,面临的安全威胁也越来越多,发生网络安全问题的损失与波及的范围也在不断升级.总结起来有以下几个方面: 网络安全国家化:美国把网络与陆海空并列为国家主权领土四大

XenApp_XenDesktop_7.6实战篇之十九:安装、升级和配置StoreFront 3.0

CitrixXenDesktop7.6 Feature Pack 2中发布了StoreFront 3.0,本章节为大家分享如何全新部署.升级和配置StoreFront 3.0.默认XenDesktop 7.6光盘自带的StoreFront版本为2.6.0.5031.注意升级和全新部署StoreFront 3.0使用的安装程序是一致的. 1.  全新部署StoreFront 3.0 1.1   将CTXSF01服务器加入域,并使用具备本地管理员权限的域账户进行登录 1.2   运行StoreFro

高屋建瓴 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 is good but it is beginning to feel somehow antiquate and moreover it doesn't actually leverage modern multi core CPUs so popular nowadays on most mo

探索Oracle之数据库升级十 12c(12.1.0.2)CPU 19774304

探索Oracle之数据库升级十 12c(12.1.0.2)CPU 19774304 一.   补丁描述 参考metalink doc: (Doc ID 19774304.8) Bug19774304 - 12.1.0.2 Bundle Patch 2 for Engineered Systems and DB In-Memory (Nov2014) (Doc ID 19774304.8) 二.   补丁包含 19649591 DATABASE BUNDLE PATCH 12.1.0.2.2 (O

SDL2.0例子代码分析-----CheckKeys Project

SDL简介 SDL(Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库,使用C语言写成.SDL提供了数种控制图像.声音.输出入的函数,让开发者只要用相同或是相似的代码就可以开发出跨多个平台(Linux.Windows.Mac OS X等)的应用软件.目前SDL多用于开发游戏.模拟器.媒体播放器等多媒体应用领域. SDL1.2和SDL2的差别 SDK1.2和SDL2.1系列的API接口变动的不小,当然功能也大大增强,支持多线程窗口. 具体的change 请看 h

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

折腾自己的个人网站,装了个数据库管理工具,遇到您应升级到 MySQL 5.5.0 或更高版本... 采用降级phpmyadmin版本的方法解决了: 查找phpmyadmin/libraries/common.inc.php #查找 if (PMA_MYSQL_INT_VERSION < 50500) { #更换为 if (PMA_MYSQL_INT_VERSION < 50100) { ok!搞定