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. SpringBoot学习(七)

    静态资源处理 spring Boot 默认的处理方式就已经足够了,默认情况下Spring Boot 使用WebMvcAutoConfiguration中配置的各种属性. 建议使用Spring Boot ...

  2. Vue 2.0学习(一)简介

    简介 Vue是一套用于构建用户界面的渐进式框架.简单小巧( 压缩后仅17KB),Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件.它不仅易于上手,还便于与第三方库或既 ...

  3. 【BZOJ 2440】 2440: [中山市选2011]完全平方数 (二分+容斥原理+莫比乌斯函数)

    2440: [中山市选2011]完全平方数 Description 小 X 自幼就很喜欢数.但奇怪的是,他十分讨厌完全平方数.他觉得这些数看起来很令人难受.由此,他也讨厌所有是完全平方数的正整数倍的数 ...

  4. Python基础篇:从0开始学python

    目录 数据类型 基本数据类型 整形Int的内置方法 字符串Str的内置方法 列表(待补充) 流程控制 分支结构if...else... for循环 循环控制 while循环 函数 函数的名称与格式 参 ...

  5. 批量 添加 安卓构建 版本 eclipse

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha

  6. MySql默认编码所造成的乱码麻烦1.222

    1.前言 MySQL在安装时,最后的一步,会让你选择MySQL服务器及客户端.数据库.连接接口的默认编码.通常可选择 UTF8和GB2312. 但是,如果你选择了utf8的时候,恰好你要从另一个数据库 ...

  7. Java(静态)变量和(静态)代码块的执行顺序

    本文讨论Java中(静态)变量.(静态)代码块的执行顺序 首先创建3个类: 1.Foo类,用于打印变量 public class Foo { public Foo(String word) { Sys ...

  8. Codeforces Round #346 (Div. 2) B. Qualifying Contest 水题

    B. Qualifying Contest 题目连接: http://www.codeforces.com/contest/659/problem/B Description Very soon Be ...

  9. 简单破解 Sencha Architect 2.2 (ExtJs Designer)

    Sencha Architect 2是ExtJS和Sencha Touch的官方可视化IDE工具.最新版本是2.2,说是破解,其实是修改License来实现无限试用而已. 1.先下载安装官方软件,大约 ...

  10. SEAndroid安全机制简要介绍和学习计划

    与iOS相比.Android最被人诟病的是其流畅性和安全性. 然而,从4.0開始,Android不遗余力地改善其流畅性. 特别是在即将公布的L版本号中,用ART替换了Dalvik,相信会越来越流畅.至 ...