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. Shiro切入Spring的方式

    在springMVC中要使用shiro,一般都遵循下面的配置: applicationContext-shiro.xml <bean id="shiroFilter" cla ...

  2. properties文件乱码问题 eclipse

    java最常用的开发工具eclipse里面的properties配置文件里面打开中文是乱码的,解决方式很简单. 将default encoding 设置为utf-8即可. 效果: 漂亮!!!

  3. 学点编码知识又不会死:Unicode的流言终结者和编码大揭秘

    如果你是一个生活在2003年的程序员,却不了解字符.字符集.编码和Unicode这些基础知识.那你可要小心了,要是被我抓到你,我会让你在潜水艇里剥六个月洋葱来惩罚你. 这个邪恶的恐吓是Joel Spo ...

  4. SPOJ694 DISUBSTR --- 后缀数组 / 后缀自动机

    SPOJ694 DISUBSTR 题目描述: Given a string, we need to find the total number of its distinct substrings. ...

  5. 求n的阶乘 (python实现)

    描述 给定一个数n,范围为0≤n≤100,请你编程精确的求出n的阶乘n!. 输入 输入数据有多行,每行一个整数n,当n<0时输入结束. 输出 输出n的阶乘. 样例输入 1234-1 样例输出 1 ...

  6. BZOJ 2976: [Poi2002]出圈游戏 HDU 5668 CRT

    2976: [Poi2002]出圈游戏 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=2976 Description Input 中第一 ...

  7. Codeforces Round #305 (Div. 1) B. Mike and Feet 单调栈

    B. Mike and Feet Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/547/pro ...

  8. Druid 配置 wallfilter

    这个文档提供基于Spring的各种配置方式 使用缺省配置的WallFilter <bean id="dataSource" class="com.alibaba.d ...

  9. UltraEdit字体设置(fontlink大法)

    在网上游荡很久,查阅诸多资料,终于为UltraEdit选定了一套我喜欢的字体方案.这套字体方案是:英文字体使用Consolas,中文字体使用微软雅黑. 虽然说起来好像很清楚,但是因为在UltraEdi ...

  10. Oracle经典查询案例

    1.创建一个学生管理数据库,名称为student 2.最少包括一下三张表 S (SNO,SNAME)学生关系.SNO 为学号,SNAME 为姓名 C (CNO,CNAME,CTEACHER)  课程关 ...