[cocos2d-x]cocos2dx与cocos2d的一些变化

简介:

cocos2dx v2.0版本发布一段时间了,现在最新版本是 cocos2d-2.0-rc2-x-2.0.1 ;这段时间Himi对2.x的更新版也有关注,也尝试使用过,发现不少地方都有改动,对于Himi最新项目快到尾声的考虑,所以也没有更新引擎到最新。那么今天开始Himi将陆续使用最新v2.x版本的一些东东,同步更新一些经常使用的改动以及值得注意的地方发博文出来与大家共享;

在之前我们使用cocos2dx 1.x版本中,我们都知道,创建一个CCObject类,都是类名然后::类名去除CC这个规律来创建和初始化,但是这一条在Cocos2dx 2.x版本就不行了,在cocos2dx  2.x版本中初始化和创建类基本都是 create 关键字开头创建。

首先我们来看第一个改动:  CCLayer初始化

自定义Layer,类名:World

1
2
3
4
5
6
.h中:
1.x版本Layer函数
LAYER_NODE_FUNC(World);
 
2.x版本Layer函数
LAYER_CREATE_FUNC(World);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
.cpp中:
1.x版本的重写函数:
 
CCScene* World::scene()
{
     CCScene *scene = CCScene::node();
     World *layer = World::node();
     scene->addChild(layer);
     return scene;
}
 
2.x版本的重写函数:
 
CCScene* World::scene()
{
     CCScene *scene = CCScene::create();
     World *layer = World::create();
     scene->addChild(layer);
     return scene;
}

 

然后我们看第二个常用的CCArray的初始化:

1
2
3
4
5
1. x版本的CCArray创建:
CCArray * array = CCArray : : array ( ) ;
 
2. x版本的CCArray创建: 
CCArray * array = CCArray : : create ( ) ;

 

 

第三个我们看文件路径相关CCFileUtils函数使用:

[cpp]  view plain copy
  1. 1.x版本的使用:   
  2. const char* fullpath = cocos2d::CCFileUtils::fullPathFromRelativePath(patha.c_str());  
  3.    
  4. 2.x版本的使用:  
  5. const char* fullpath = cocos2d::CCFileUtils::sharedFileUtils()->fullPathFromRelativePath(patha.c_str());  



第四个精灵的创建:  

[cpp]  view plain copy
  1. 1.x中精灵的创建:  
  2.  CCSprite *sp = CCSprite::spriteWithFile("himi.png");  
  3. 2.x中精灵的创建:  
  4.  CCSprite *sp = CCSprite::create("himi.png");  



第五个注册触屏事件监听

[cpp]  view plain copy
  1. 1.x中注册:  
  2. CCTouchDispatcher::sharedDispatcher()->addTargetedDelegate(this, 0, false);  
  3.    
  4. 2.x中注册:  
  5. CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this, 0, false);  


第六个粒子相关

[cpp]  view plain copy
  1. 1.x粒子创建和设置自动释放设置  
  2. CCParticleSystem *tempSystem =  CCParticleSystem::particleWithFile("himi.plist");  
  3.         tempSystem->setIsAutoRemoveOnFinish(true);  
  4.            
  5. 2.x粒子创建和设置自动释放设置          
  6. CCParticleSystem *tempSystem =  CCParticleSystemQuad::create("himi.plist");  
  7.         tempSystem->setAutoRemoveOnFinish(true);<span style="color:#ff0000;">  
  8. </span>  



第七个:CCFileData 类去除了:

[cpp]  view plain copy
  1. 1.x的CCFileData的使用:  
  2.         
  3. cocos2d::CCFileData fileDataClip(const char *pszFileName, const char *pszMode);  
  4.     
  5. 2.x中CCFileData被删除,直接使用如下函数即可代替:  
  6. CCFileUtils::sharedFileUtils()->getFileData(const char *pszFileName, const char *pszMode, unsigned long *pSize)  


第八个 Action 动作使用与创建:

[cpp]  view plain copy
  1. 1.x动作的创建与使用:  
  2. this->runAction(CCSequence::actions(  
  3.                                             CCMoveTo::actionWithDuration(ccpDistance(this->getPosition(), target) / velocity,  
  4.                                                                          target),  
  5.                                             CCCallFunc::actionWithTarget(this, callfunc_selector(Player::removeTarget))  
  6.                                             ,NULL));  
  7.     
  8. 2.x的动作创建和使用:        
  9. this->runAction(CCSequence::create(  
  10.                                            CCMoveTo::create(ccpDistance(this->getPosition(), target) / velocity,  
  11.                                                             target),  
  12.                                            CCCallFunc::create(this, callfunc_selector(Player::removeTarget))  
  13.                                            ,NULL));  


其实以上这几个例子比较有代表性了,其他的一些区分我想大家也能找到不一定的规律。那么本篇对于cocos2dx v2.0版本的差异就讲述到这,后续如果Himi还发现比较重点区分的地方也一定会博文分享出来的。   :hmg:





















本文转蓬莱仙羽51CTO博客,原文链接:http://blog.51cto.com/dingxiaowei/1366263,如需转载请自行联系原作者
相关文章
|
存储 分布式计算 资源调度
Hadoop 三大组件及作用【重要】
Hadoop 三大组件及作用【重要】
762 0
|
8月前
|
机器学习/深度学习 自然语言处理 物联网
Prot2Chat:融合蛋白质序列与结构的新型问答框架
Prot2Chat:融合蛋白质序列与结构的新型问答框架
212 1
|
监控 数据可视化 小程序
项目管理中WBS元素是什么?如何应用?
WBS(工作分解结构)是项目管理中的核心工具,将项目分解为更小、更易于管理的部分。WBS元素是构成WBS的基本单元,代表项目中的特定工作内容或任务。WBS元素最早起源于20世纪50年代的美国,现已广泛应用于建筑、软件开发、市场营销等多个领域。通过WBS元素,项目经理可以明确项目范围、促进资源分配、支持进度规划、便于风险管理、优化沟通协调和控制项目成本。创建WBS元素的过程包括确定项目目标、识别主要工作领域、细分工作领域、定义WBS元素及其关系、验证和更新WBS。尽管WBS元素有许多优点,但也存在需要时间和资源、可能过于复杂及需持续更新的缺点。
项目管理中WBS元素是什么?如何应用?
|
机器学习/深度学习 并行计算 Android开发
Int8量化算子在移动端CPU的性能优化
Int8量化算子在移动端CPU的性能优化
564 0
|
JSON 测试技术 API
阿里云PAI-Stable Diffusion开源代码浅析之(二)我的png info怎么有乱码
阿里云PAI-Stable Diffusion开源代码浅析之(二)我的png info怎么有乱码
|
Kubernetes Cloud Native Linux
CKAD考试实操指南(一)--- 登顶CKAD:征服考试的完美蓝图
Certified Kubernetes Application Developer (CKAD)是由Linux Foundation和Cloud Native Computing Foundation (CNCF)联合推出的一项专业认证,旨在验证候选人是否具备Kubernetes应用开发者所需的技能、知识和能力。CKAD考试是一个在线的、监考的、基于性能的考试,由一系列需要在命令行中解决的性能型任务(问题)组成,考试时间为2小时。
1626 0
CKAD考试实操指南(一)--- 登顶CKAD:征服考试的完美蓝图
|
机器学习/深度学习 存储 算法
梯度下降算法(一)
梯度下降是一种迭代优化算法,用于找到多变量函数的最小值。它不直接求解方程,而是从随机初始点开始,沿着梯度(函数增大幅度最大方向)的反方向逐步调整参数,逐步逼近函数的最小值。在单变量函数中,梯度是导数,而在多变量函数中,梯度是一个包含所有变量偏导数的向量。通过计算梯度并乘以学习率,算法更新参数以接近最小值。代码示例展示了如何用Python实现梯度下降,通过不断迭代直到梯度足够小或达到预设的最大迭代次数。该过程可以类比为在雾中下山,通过感知坡度变化来调整前进方向。
|
数据建模 BI 数据处理
Power BI案例-医院数据集的仪表盘制作
Power BI案例-医院数据集的仪表盘制作
|
JavaScript 前端开发 Linux
网页跳转代码的三种方法
网页跳转代码的三种方法
1923 0
|
缓存 安全 应用服务中间件
Nginx 反向代理
Nginx反向代理概述 关于正向代理和反向代理,我们在前面的章节已经通过一张图给大家详细的介绍过了,简而言之就是正向代理代理的对象是客户端,反向代理代理的是服务端,这是两者之间最大的区别。 Nginx既可以实现正向代理,也可以实现反向代理。 我们先来通过一个小案例演示下Nginx正向代理的简单应用。 先提需求: (1)服务端的设置: http { log_format main 'client send request=>clientIp=$remote_addr serverIp=>$host'; server{ listen 80; server_name lo
225 1