1.去CC
之前2.0的CC**,把CC都去掉,主要的元素都是保留的
2.0

CCSprite  CCCallFunc CCNode ..

3.0

Sprite CallFunc Node ..
2.cc***结构体改变
2.0        

ccp(x,y)        

ccpAdd(p1,p2)

ccpSub

ccpMult

ccpLength(p)

ccpDot(p1,p2);

ccc3()

ccc4()

ccWHITE

CCPointZero

CCSizeZero





3.0

Point(x,y)

p1+p2;

p1-p2

p1*p2

p.getLength()

p1.dot(p2)

Color3B()

Color4B()

Color3B::WHITE

Point::ZERO

Size:ZERO



3.shared***改变
2.0

CCSize winSize = CCDirector::sharedDirector()->getWinSize();

SpriteFrameCache::sharedSpriteFrameCache()

AnimationCache::sharedAnimationCache()

NotificationCenter::sharedNotificationCenter()





3.0

Size size = Director::getInstance()->getWinSize();

SpriteFrameCache::getInstance()

AnimationCache::getInstance()

NotificationCenter::getInstance()

4.POD类别
使用const为Point。Size,Rect进行常量修饰
2.0

void setPoint(CCPoint p)

3.0

void setPoint(const Point& p)
5.点触事件
此部分全面更新採用Event Listener
auto dispatcher = Director::getInstance()->getEventDispatcher();

auto touchListener = EventListenerTouchOneByOne::create();

touchListener->onTouchBegan = CC_CALLBACK_2(FBMainScene::onTouchBegan,this);

touchListener->onTouchMoved = CC_CALLBACK_2(FBMainScene::onTouchMoved,this);

touchListener->onTouchEnded = CC_CALLBACK_2(FBMainScene::onTouchEnded, this);

dispatcher->addEventListenerWithSceneGraphPriority(touchListener, this);



bool FBMainScene::onTouchBegan(Touch *touch,Event *pEvent){

    CCLOG("onTouchBegan");

    Point point = this->convertToWorldSpace(this->convertTouchToNodeSpace(touch));

    return true;

}



void FBMainScene::onTouchMoved(Touch *touch,Event *pEvent){

    CCLOG("onTouchMoved");

}



void FBMainScene::onTouchEnded(Touch *touch,Event *pEvent){

    CCLOG("onTouchEnded");

}



//获得触点的方法也发生了改变:

Point point = this->convertToWorldSpace(this->convertTouchToNodeSpace(touch));



//dispatcher控制方法:

dispatcher->addEventListener…

dispatcher->removeEventListener(listener);

dispatcher->removeAllListeners();
6.CC_CALLBACK_*
CC_CALLBACK_0 CC_CALLBACK_1 CC_CALLBACK_2 CC_CALLBACK_3
回调函数。分别携带不同的參数。方便
2.0

CCMenuItemFont *item = CCMenuItemFont::create("返回上个场景", this, menu_selector(GameScene::backScene));

3.0

MenuItemFont *item = MenuItemLabel::create("返回上个场景", CC_CALLBACK_1(GameScene::backScene, this));



// new callbacks based on C++11

#define CC_CALLBACK_0(__selector__,__target__, ) std::bind(&__selector__,__target__, ##__VA_ARGS__)

#define CC_CALLBACK_1(__selector__,__target__, ) std::bind(&__selector__,__target__, std::placeholders::_1, ##__VA_ARGS__)

#define CC_CALLBACK_2(__selector__,__target__, ) std::bind(&__selector__,__target__, std::placeholders::_1, std::placeholders::_2, ##__VA_ARGS__)

#define CC_CALLBACK_3(__selector__,__target__, ) std::bind(&__selector__,__target__, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3 ##__VA_ARGS__)
7.使用"Function"对象
CallFunc::create([&](){

        Sprite *sprite = Sprite::create("s");

        this->addChild(sprite);

});
8.使用clone取代copy
2.0

CCMoveBy *action = (CCMoveBy*) move->copy();

action->autorelease();

3.0

action = move->clone();

不须要autorelease,在clone已经实现。

9.Physics Integration 物理引擎
box2d 在 3.0中能够延续使用
在3.0的Physics中须要定义 PhysicsWorld, PhysicsBody, PhysicsShape, PhysicsJoint 等,于box2d相仿,使用前须要定义CC_USE_PHYSICS
……继续等待补充

Cocos2d-x 2.x 升级为 3.x 常见变化纪录的更多相关文章

  1. cocos2d 从v1.x升级到v2.x需要注意的几个地方

    首先v1.x一些CCNode定位函数实现的有问题,导致返回的CCPoint的x坐标不正确(超出320后无变化),怀疑是其对屏幕旋转判断的不正确;而且这种现象在iOS 7.1之前的模拟器中运行都正常,在 ...

  2. ASP.NET Core 2.0升级到3.0的变化和问题

    前言 在.NET Core 2.0发布的时候,博主也趁热使用ASP.NET Core 2.0写了一个独立的博客网站,现如今恰逢.NET Core 3.0发布之际,于是将该网站进行了升级. 下面就记录升 ...

  3. tp3.2升级tp5需要注意的变化

    I方法用input代替:D和M方法没了,需要的话自己封装.C方法没了,需要自己封装,配置文件说明官方文档写的不对,无法使用 Session的使用发生很大变化 模板渲染,控制器传空值会报错 模板内置标签 ...

  4. ffmpeg api升级到3.3 api变化

     void av_free_packet(AVPacket * pkt) Use void av_packet_unref(AVPacket * pkt) Wipe the packet. Unref ...

  5. 作为CTO如何做技术升级

    升级技术架构,先要革新观念,最后才是技术问题 升级技术架构,不仅仅是技术升级 说到升级架构,大家第一个都会想到,是不是对技术升级一下就可以了? 我认为不是,技术架构升级要求的是整个公司的升级. 技术架 ...

  6. iOS10.0 & Swift 3.0 对于升级项目的建议

    iOS & Swift新旧版本更替, 在Apple WWDC大会开始之际, 也迎来了iOS 10.0, Swift 3.0 测试版, 到目前为止, 已经是测试版2.0, 每次更新都带来了新的语 ...

  7. 从CakePHP 1.3升级到2.5

    从CakePHP 1.3升级到2.5 摘要:最近把一个CakePHP 1.3的项目升级到了2.x,当然就用最新的版本2.5.3了,结果基本满意.本文记录了升级的过程,包括使用的工具,遇到的问题和相应的 ...

  8. 【重要更新】Senparc.Weixin SDK v6.5 升级说明(支持 .NET Core 3.0 及分布式消息上下文)

    Senparc.Weixin SDK v6.5 开始支持 .NET Core 3.0,并将微信消息上下文进行了大幅度的重构,支持了使用分布式缓存存储上下文信息,这意味着在分布式系统中,现在 Senpa ...

  9. Centos7升级gcc极简教程

    centos7默认gcc版本为4.8,一般不满足编译需求,因此升级gcc版本为常见操作: 现有博客中,大多数教程都是基于源码重新编译安装:但是源码编译过程等待时间很长且编译麻烦. 因此,直接基于命令升 ...

随机推荐

  1. Am335x U-boot LCD简易驱动

    参考此文档说明,自行添加相关代码: https://pan.baidu.com/s/1i5gLE89 相关代码: https://pan.baidu.com/s/1qXL8Bne 在文档说明第四步1中 ...

  2. 【BZOJ 4631】4631: 踩气球 (线段树)

    4631: 踩气球 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 316  Solved: 153 Description 六一儿童节到了, SHUX ...

  3. tomcat8.5请求参数限制的问题

    前段时间遇到这个问题: 包含json字符串类型的参数的http请求失败,返回状态码400,提示invalid character found in the request target. Tomcat ...

  4. Palindromic Tree 回文自动机-回文树 例题+讲解

    回文树,也叫回文自动机,是2014年被西伯利亚民族发明的,其功能如下: 1.求前缀字符串中的本质不同的回文串种类 2.求每个本质不同回文串的个数 3.以下标i为结尾的回文串个数/种类 4.每个本质不同 ...

  5. [USACO08JAN]Cell Phone Network

    题目大意: 给你一个n个结点的树,请你搞一些破坏. 你可以选择手动弄坏某个点,那么与它直接相连的点也会自动坏掉. 问你把整棵树搞坏至少要手动弄坏几个点? 思路: f[0~2][i]表示不同状态下以i为 ...

  6. [CodeForces-513E2]Subarray Cuts

    题目大意: 给你一个数列,从中选出k个互不重叠的非空子串,定义s[i]为第i个子串的和,求|s[1]-s[2]|+|s[2]-s[3]|+...+|s[k-1]-s[k]|的最大值. 思路: 考虑将绝 ...

  7. Navicat连接Docker中的mysql报错:client does not support authentication

    1.进入mysql容器中 docker exec -it mysqltest(mysql容器名称) bash 2.进入mysql数据库 mysql -uroot -p 3.输入mysql密码 4.远程 ...

  8. python开发_IDEL(Python GUI)的使用方法

    在这篇blog"Python开发_python的安装"里面你会了解到python的安装. 安装后,我们希望能够运用python GUI来运行一些我们编写的程序,那么Python G ...

  9. iOS 画圆

    _demoView = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)]; [self.view addSubview:_de ...

  10. Codeforces Round #247 (Div. 2) ABC

    Codeforces Round #247 (Div. 2) http://codeforces.com/contest/431  代码均已投放:https://github.com/illuz/Wa ...