Cocos2d-x 2.x 升级为 3.x 常见变化纪录

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

……继续等待补充

时间: 2024-08-30 00:43:07

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

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

iOS & Swift新旧版本更替, 在Apple WWDC大会开始之际, 也迎来了iOS 10.0, Swift 3.0 测试版, 到目前为止, 已经是测试版2.0, 每次更新都带来了新的语法变化, Swift更加简洁, 但是Xcode 越发不给力, 输出变本加厉, NSLog 一如既往的不好使, 但是,好消息是, 无论语法怎么改变, 在已有项目的基础上, Xcode更新到8.0 测试版 2.0, 您只需按照系统提示的红空心原点提示, 一个一个的替换, 就可以完美的过度到iOS 10.0,  

MySQL 'In Place' 升级实践,从5.1到5.7

接上篇翻译的文章:使用'In place' 方法直接从5.0升级至5.7,在此记录我实践的过程. 1.环境准备 数据库A 版本:5.1 字符集:latin1 引擎:MyISAM 数据库量:约220G 表数据量:约600 服务器:centos6.5 2.升级过程 已经搭建好5.1版本数据的从库,等主从同步之后,开始升级从库 在第一次升级时遇到问题,执行mysql_upgrade显示表损坏. 我们在升级前,首先检查并修复表(MyISAM引擎).  ./bin/mysqlcheck -uroot -h

无线 LAN 控制器 (WLC) 软件升级

介 本文解释步骤和需求到在无线局域网控制器(WLC)的升级软件. 先决条件 要求 除了具备基本网络知识和熟悉 Cisco 无线局域网控制器的基本配置和安装之外,在您尝试升级 WLC 之前,请确保满足以下要求.请注意,每个主要求还包括一个版本特定的要求: 可从 WLC 的管理 IP 地址访问的网络上的 TFTP 服务器 请确保您有一个可用于软件升级的 TFTP 服务器.在设置 TFTP 服务器时,请记住以下准则: 如果通过服务端口升级,则 TFTP 服务器必须与服务端口位于同一子网中,因为服务端口

升级到Unity 5.4

升级到Unity 5.4 当将项目从Unity 5.3升级到Unity 5.4时,有一些更改,您应该注意哪些可能会影响您现有的项目. 网络:多人服务API更改 许多更改联网API. 网络:WebRequest不再实验 该WebRequest接口已经从推广UnityEngine.Experimental.Networking到UnityEngine.Networking.使用统一5.2和5.3的项目UnityWebRequest将必须被更新. 场景视图:音频映射不会自动应用 与图像效果ImageE

火拼商城助力新零售 谁说五环外没有消费升级?

随着消费升级的概念在近几年的愈发火热,人们对于商品的购买诉求正在发生变化,已经不局限于商品的基本功能,单纯的廉价也不再是最大的吸引力.消费升级的本质在于消费总福利的提升,在消费水平不断提高的背景下,人们更期待买到高端.质量好,甚至更好玩的商品,对于购物体验的要求也越来越丰富. 而一旦说到消费升级,就绕不开一个话题,那就是"五环外".相对于已经被市场教育成熟,网购基础设施完善的一二线城市,国内依旧存在着巨大的未开发或者说开发不充分的三四五线城市市场,而这些城市居民也正是未来消费升级的主力

【重要更新】Senparc.Weixin SDK v6.5 升级说明

Senparc.Weixin SDK v6.5 将微信消息上下文进行了大幅度的重构,支持了使用分布式缓存存储上下文信息,这意味着在分布式系统中,现在 Senparc.Weixin SDK 也能提供跨服务器的上下文消息共享. 当前的分布式上下文支持依赖了 NeuChar 提供的跨平台消息上下文解决方案,因此在公众号.小程序.企业微信中都已经默认支持此功能(开放平台接收的是系统推送,暂时没有必要支持). 本次升级对应 Senparc.Weixin.dll:v6.5.0,Senparc.Weixin.

虚拟主机中三种网络模式介绍

cocos2d-x升级到3.0后变化不小,除了API的变化(主要是函数和类名称变化,以及使用了C++11的不少特性,function/bind, lamda, std::thread-),创建和编译工程也做了一些简化调整.本文主要讨论一下cocos2d-x3.0 在android平台开发的环境设置及工程创建编译流程. 1.   初始设置 除了2.x所需要的python,jdk, android sdk和ndk之外,还需要部署apache-ant. 1)      在path中设置好java环境变

编程算法基础3.3-测试驱动风格

cocos2d-x升级到3.0后变化不小,除了API的变化(主要是函数和类名称变化,以及使用了C++11的不少特性,function/bind, lamda, std::thread-),创建和编译工程也做了一些简化调整.本文主要讨论一下cocos2d-x3.0 在android平台开发的环境设置及工程创建编译流程. 1.   初始设置 除了2.x所需要的python,jdk, android sdk和ndk之外,还需要部署apache-ant. 1)      在path中设置好java环境变

打造 ubuntu server 12.04 jeos

cocos2d-x升级到3.0后变化不小,除了API的变化(主要是函数和类名称变化,以及使用了C++11的不少特性,function/bind, lamda, std::thread-),创建和编译工程也做了一些简化调整.本文主要讨论一下cocos2d-x3.0 在android平台开发的环境设置及工程创建编译流程. 1.   初始设置 除了2.x所需要的python,jdk, android sdk和ndk之外,还需要部署apache-ant. 1)      在path中设置好java环境变