【COCOS2D-X(2.X) 游戏开发系列之一】COCOS2DX(V2.X)与(V1.X)的一些常用函数区别讲解!在2.X版CCFILEDATA类被去除等...
转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/cocos2dx-v2-0/938.html
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函数使用:
1
2
3
4
5
|
1.x版本的使用:
const char* fullpath = cocos2d::CCFileUtils::fullPathFromRelativePath(patha.c_str());
2.x版本的使用:
const char* fullpath = cocos2d::CCFileUtils::sharedFileUtils()->fullPathFromRelativePath(patha.c_str());
|
第四个精灵的创建:
1
2
3
4
|
1.x中精灵的创建:
CCSprite *sp = CCSprite::spriteWithFile("himi.png");
2.x中精灵的创建:
CCSprite *sp = CCSprite::create("himi.png");
|
第五个注册触屏事件监听:
1
2
3
4
5
|
1.x中注册:
CCTouchDispatcher::sharedDispatcher()->addTargetedDelegate(this, 0, false);
2.x中注册:
CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this, 0, false);
|
第六个粒子相关
1
2
3
4
5
6
7
|
1.x粒子创建和设置自动释放设置
CCParticleSystem *tempSystem = CCParticleSystem::particleWithFile("himi.plist");
tempSystem->setIsAutoRemoveOnFinish(true);
2.x粒子创建和设置自动释放设置
CCParticleSystem *tempSystem = CCParticleSystemQuad::create("himi.plist");
tempSystem->setAutoRemoveOnFinish(true);
|
第七个:CCFileData 类去除了:
1
2
3
4
5
6
|
1.x的CCFileData的使用:
cocos2d::CCFileData fileDataClip(const char *pszFileName, const char *pszMode);
2.x中CCFileData被删除,直接使用如下函数即可代替:
CCFileUtils::sharedFileUtils()->getFileData(const char *pszFileName, const char *pszMode, unsigned long *pSize)
|
第八个 Action 动作使用与创建:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
1.x动作的创建与使用:
this->runAction(CCSequence::actions(
CCMoveTo::actionWithDuration(ccpDistance(this->getPosition(), target) / velocity,
target),
CCCallFunc::actionWithTarget(this, callfunc_selector(Player::removeTarget))
,NULL));
2.x的动作创建和使用:
this->runAction(CCSequence::create(
CCMoveTo::create(ccpDistance(this->getPosition(), target) / velocity,
target),
CCCallFunc::create(this, callfunc_selector(Player::removeTarget))
,NULL));
|
其实以上这几个例子比较有代表性了,其他的一些区分我想大家也能找到不一定的规律。那么本篇对于cocos2dx v2.0版本的差异就讲述到这,后续如果Himi还发现比较重点区分的地方也一定会博文分享出来的。 :hmg:
【COCOS2D-X(2.X) 游戏开发系列之一】COCOS2DX(V2.X)与(V1.X)的一些常用函数区别讲解!在2.X版CCFILEDATA类被去除等...相关推荐
- unity2d游戏开发系列教程:二、新建工程并熟悉Unity编辑器常用功能
目录 unity2d游戏开发系列教程:一.环境安装 第一步.打开项目 耐心等待一小会 工程界面 第二步.创建第一个场景(第一关)进行试玩 点击图中标号1的运行按钮,即可简单试玩感受,操作如下 移动A, ...
- unity2d游戏开发系列教程:一、环境安装
从这篇文章开始,一步一步教大家从0开始通过2DGameKit项目进行2D游戏开发 第一步.环境安装 1.先使用手机下载Unity Connect并注册登陆 2.进入unity官网https://uni ...
- unity2d游戏开发系列教程:四、一个2D游戏所需要的主要功能(游戏框架)
目录 unity2d游戏开发系列教程:一.环境安装 unity2d游戏开发系列教程:二.新建工程并熟悉Unity编辑器常用功能 unity2d游戏开发系列教程:三.场景布置,增加怪物和机关 原文下载 ...
- unity2d游戏开发系列教程:三、场景布置,增加怪物和机关
目录 unity2d游戏开发系列教程:一.环境安装 unity2d游戏开发系列教程:二.新建工程并熟悉Unity编辑器常用功能 第一节.场景草地布置 先查看一下资源文件里都有什么,一会就要用到的 打开 ...
- Cocos2dx游戏开发系列笔记3:牛刀小试-忍者飞镖射幽灵的Demo
2019独角兽企业重金招聘Python工程师标准>>> 就是这个例子,应该很简单,主要用到的有:精灵的移动,触摸,碰撞检测. 赶紧搞定,待会还要陪哲哲来几局爱消除. 首先在Scene ...
- Cocos2dx游戏开发系列笔记11:解刨《战神传说》完结篇
懒骨头(http://blog.csdn.net/iamlazybone QQ:124774397 ) 两点: 1 感谢 net19880504 同学,在上篇提到:想让骨头继续写<战神传说> ...
- Cocos2dx游戏开发系列笔记6:怎样让《萝莉快跑》的例子运行在vs和手机上
2019独角兽企业重金招聘Python工程师标准>>> 感谢听D同学赞助的Demo. 那怎样让它运行在vs中呢: 1 使用cocos2d-x-2.2\tools\project-cr ...
- 炸弹人游戏开发系列(6):实现碰撞检测,设置移动步长
前言 上文中我们实现了"玩家控制炸弹人"的功能,本文将实现碰撞检测,让炸弹人不能穿过墙.在实现的过程中会发现炸弹人移动的问题,然后会通过设置移动步长来解决. 说明 名词解释 具体状 ...
- HTML5游戏开发系列教程5(译)
原文地址:http://www.script-tutorials.com/html5-game-development-lesson-5/ 最终我决定准备下一篇游戏开发系列的文章,我们将继续使用can ...
最新文章
- 推断股票强弱最有效的一个方法
- Struts快速入门
- windows安装ffmpeg
- IDC:全球经济危机为云计算带来曙光
- IDF实验室-图片里的英语
- CORS跨域漏洞的学习(防止CSRF漏洞导致的漏洞)
- 伽利略板子串口驱动安装问题
- Shiro学习总结(3)——Apache Shiro身份认证
- MATLAB:虹膜识别的图像灰度化处理,直方图均衡化
- 【好用的Mac分屏软件】Magnet for Mac 2.3
- 2020年第十届C/C++ B组第二场蓝桥杯省赛真题
- 关于卸载驱动精灵后蓝屏的办法
- 小白眼中的docker究竟是个什么东西
- MTK6577+Android GPIO
- TOP公链主网技术:多层扩容和多层分片
- JavaScript 数组方法find()
- WPF学习之绘图和动画
- python中delta是什么意思_如何使用python计算Delta F/F?
- 2016年中国未来的新兴行业推荐
- Windows系统开通sftp服务