`
jishublog
  • 浏览: 927315 次
文章分类
社区版块
存档分类
最新评论

[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函数使用:

  1. 1.x版本的使用:
  2. constchar*fullpath=cocos2d::CCFileUtils::fullPathFromRelativePath(patha.c_str());
  3. 2.x版本的使用:
  4. constchar*fullpath=cocos2d::CCFileUtils::sharedFileUtils()->fullPathFromRelativePath(patha.c_str());



第四个精灵的创建:

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



第五个注册触屏事件监听

  1. 1.x中注册:
  2. CCTouchDispatcher::sharedDispatcher()->addTargetedDelegate(this,0,false);
  3. 2.x中注册:
  4. CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this,0,false);


第六个粒子相关

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



第七个:CCFileData 类去除了:

  1. 1.x的CCFileData的使用:
  2. cocos2d::CCFileDatafileDataClip(constchar*pszFileName,constchar*pszMode);
  3. 2.x中CCFileData被删除,直接使用如下函数即可代替:
  4. CCFileUtils::sharedFileUtils()->getFileData(constchar*pszFileName,constchar*pszMode,unsignedlong*pSize)


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

  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. 2.x的动作创建和使用:
  8. this->runAction(CCSequence::create(
  9. CCMoveTo::create(ccpDistance(this->getPosition(),target)/velocity,
  10. target),
  11. CCCallFunc::create(this,callfunc_selector(Player::removeTarget))
  12. ,NULL));


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


分享到:
评论

相关推荐

    cocos2d-x-cocos2d-x-2.2.2.zip

    标签“cocos”和“cocos2dx”分别代表了cocos系列框架和cocos2d-x这个特定的分支。cocos2d-x不仅适用于游戏开发,还可以用于创建教育软件、互动媒体和其他2D图形应用,其强大的场景管理、精灵(Sprite)系统和粒子...

    cocos2d-x-3.1.zip

    Cocos2d-x是一个开源的游戏开发框架,广泛用于2D游戏、实时渲染应用程序和其他互动内容的制作。这个压缩包“cocos2d-x-3.1.zip”包含了Cocos2d-x框架的3.1版本,这是一个经典且相对旧的版本,可能对于那些寻找历史...

    cocos2d-x_v3.16安装及环境变量配置文档

    安装 Visual Studio Community 2017 时,如果默认下载的组件与 Cocos2d-x-3.16.zip 发布包中项目的配置不同,可能会导致打开解决方案时缺少组件。此时需要根据提示安装缺少的组件,或者升级到当前版本的 Visual ...

    cocos引擎老版本集合(cocos2d-x-2.2.1 - 3.5).zip

    cocos引擎老版本下载集合(cocos2d-x-2.2.1 - 3.5),分别有cocos2d-x-3.5、cocos2d-x-3.4、cocos2d-x-3.2、cocos2d-x-2.2.6、cocos2d-x-2.2.2和cocos2d-x-2.2.1。

    经典版本 方便下载 源码 旧版本 3.8 官网找不到了 cocos2d-x-3.8.zip

    在学习和使用cocos2d-x 3.8时,开发者需要注意与最新版本的差异,例如API的变化、新功能的缺失等。同时,由于3.8是旧版本,可能不再受到官方的维护和支持,所以在解决特定问题时可能需要查阅旧的文档或社区论坛。 ...

    cocos2d-x API中文文档

    文档中提到了Cocos2d-x的API风格,特别是从v3.0-beta2版本开始引入的两阶段构造器和静态`create()`函数。这种设计模式使得在C++中,类的构造过程分为两个阶段:第一阶段是设置成员变量的默认值,第二阶段是在`create...

    cocos2d-x-3.13.1 spine3.6.zip

    《Cocos2d-x 3.13.1与Spine 3.6集成详解》 Cocos2d-x是一个广泛使用的开源游戏开发框架,它基于C++,同时支持Lua和JavaScript等多种脚本语言,为开发者提供了高效、跨平台的游戏开发解决方案。在3.13.1版本中,...

    cocos2d-x windows vs2010配置

    接下来,把 F:\cocos2d-1.0.1-x-0.9.1\cocos2dx 和 F:\cocos2d-1.0.1-x-0.9.1\CocosDenshion 这两个文件夹里面的全部内容拷贝一份到 D:\cocos2d-xProjects\HelloWorld 中去。 九、设置静态链接库 接下来,打开 F:\...

    cocos2d-x-2.1.4.rar

    cocos2d-x 是一个跨平台的2D游戏开发框架,它为开发者提供了强大的工具和技术支持,使得游戏开发变得更为便捷。2.1.4 版本是这个框架的一个重要里程碑,它在前一版本的基础上进行了一系列的优化和改进,提升了性能,...

    cocos引擎老版本集合(cocos2d-x-2.2.1 - 3.5)

    cocos引擎老版本下载集合(cocos2d-x-2.2.1 - 3.5),分别有cocos2d-x-3.5、cocos2d-x-3.4、cocos2d-x-3.2、cocos2d-x-2.2.6、cocos2d-x-2.2.2和cocos2d-x-2.2.1。

    Cocos2d-x实战 JS卷 Cocos2d-JS开发

    2. **图形与动画**:讲解如何使用Cocos2d-x的绘图API绘制2D图形,实现精灵(Sprite)、动画(Animation)和粒子系统(Particle System)。 3. **物理引擎**:介绍Cocos2d-x内置的Box2D物理引擎,用于模拟游戏中的...

    Cocos2d-x实战C++卷关东升著完整版pdf

    Cocos2d-x是一个开源的、跨平台的2D游戏开发框架,广泛应用于iOS、Android、Windows等多个操作系统。本书以C++语言为主要编程工具,详细介绍了如何利用Cocos2d-x进行游戏开发。 首先,Cocos2d-x的基础知识是必须...

    使用cocos2d-x-2.0-2.0.4开发的简单跨平台益智类魔塔小游戏

    - **源码分析**:通过阅读`cocos2dx-mota-code`中的源码,可以学习到如何使用cocos2d-x框架构建一个完整的游戏,包括场景切换、游戏逻辑、UI布局等。 5. **调试与优化**: - **调试工具**:cocos2d-x提供了调试器...

    cocos2d-x-3.13.1.zip

    总结,cocos2d-x 3.13.1是一个强大且成熟的2D游戏开发框架,不仅提供了丰富的功能,还持续优化以适应不断变化的技术环境。对于有志于游戏开发的程序员来说,熟练掌握cocos2d-x将为他们的职业生涯开启新的可能。

    Cocos2d-x实战++JS卷++Cocos2d-JS开发+PDF电子书下载+带书签目录+完整

    而标签"cocos2dx 电子书"则更直接地说明了这是一本关于Cocos2d-x电子书。 内容部分并没有提供关于Cocos2d-x或者游戏开发的具体技术细节,而是转向了提供电子书的服务。这里涉及的几个点为: 1. 电子书资源提供:...

    cocos2d-x事件类

    在使用cocos2d-x开发游戏的过程中,为了实现逻辑和显示相分离。 在下通宵了一个晚上,写出了该事件类。 谨记,该事件只能用于cocos2d-x中。 事件发送者需要继承EventDispatcher类 事件接收者需要继承EventHandle类...

    cocos2d-x游戏源码 三国策略游戏源码

    cocos2d-x是一个开源的游戏开发框架,它基于cocos2d-x,用于创建2D游戏、演示程序和其他图形/交互式应用程序。cocos2d-x是用C++编写的,但同时也支持Lua和JavaScript作为脚本语言,使得开发者可以根据自己的喜好选择...

    cocos2d-x 跑酷源码

    2. 地图拼接:TMX或CSV格式的文件描述了游戏地图的结构,cocos2d-x的TiledMap类可以加载这些文件,动态拼接地图,实现滚动效果。 3. 触摸事件处理:跑酷游戏通常需要响应玩家的触摸操作,如滑动屏幕控制角色移动,...

    cocos2d-x实战 c++卷教程及完整源码

    cocos2d-x实战 c++卷教程及完整源码下载,使用最新cocos2d-x-3.14版本,在xcode7.3上已编译通过。 解决相关问题 1、解决源程序在高版本上无法编译问题 2、解决源程序中文注释部分,xcode上显示乱码问题 3、根据书籍...

    cocos2d-x权威指南

    根据提供的信息,“cocos2d-x权威指南”这一标题与描述明确指出了本文将围绕cocos2d-x这一游戏开发框架展开深入探讨。cocos2d-x是一款非常流行的跨平台游戏开发引擎,支持多种编程语言如C++、JavaScript等,并且能够...

Global site tag (gtag.js) - Google Analytics