`
frank__wang
  • 浏览: 22292 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

cocos2dx --- Action介绍

阅读更多

原文来自:http://www.cnblogs.com/changchao/archive/2013/05/07/3065254.html

1. cocos2dx中,CCAction的类的结构图
<ignore_js_op style="word-wrap: break-word;">07181004-05b12de7eb664137a955b1bb4d3e24e6.png 

2.动作的基类是CCAction,通过继承它可以实现很多不同的动作,主要分为三大类:CCFiniteTimeAction(有限次动作执行类)、CCSpeed(节点执行速度类)、CCFollow(节点跟随另一个节点移动)。在实际中,主要用到的是CCFiniteTimeAction类。

3.CCFiniteTimeAction分为CCActionInstant(瞬时动作)和CCActionInterval(延迟动作)。其中CCActionInstant动作没有执行过程,动作瞬时完成,而CCActionInterval动作执行需要一定的时间(或者一个过程)。在实际中,为了制作出炫丽的动画效果,使用得多的是CCActionInterval延时动作。

4.在上面的类结构图中,CCActionInterval的子类很多,简单介绍其中常用的,也可以通过cocos2d-x中自带的TestCpp例子来学习。(1) CCMoveTo / CCMoveBy 移动两者的主要差别在于CCMoveTo是移动到指定坐标,CCMoveBy是相对坐标。例如CCMoveTo(2.0f, ccp(50, 50))是在2s时间内移动到点x = 50、y = 50处,而CCMoveBy(2.0f, ccp(50, 50))表示2s时间内向x方向移动50个单位,向y方向移动50个单位;(2) CCScaleTo / CCScaleBy 缩放;(3) CCRotateTo / CCRotateBy 旋转;(4) CCSkewTo / CCSkewBy 扭曲;(5) CCJumpTo / CCJumpBy 跳跃;(6) CCBezierTo / CCBezierBy 贝塞尔曲线;(7) CCBink 闪烁;(8) CCFadeIn / CCFadeOut 淡入淡出;(9) CCTintTo / CCTintBy 染色,等

5.下面就个人体会,重点分析以下几个动作:CCSequence,CCSpawn,CCRepeat,CCRepeatForever,CCActionCamera
  CCSequence:是用来按顺序执行一系列的动作。需要注意是,在执行的动作系列中不能出现CCRepeat这种无限的动作。

  1. CCMoveTo* move_1 = CCMoveTo::create(2,ccp(10,20));
  2. CCMoveBy* move_2 = CCMoveBy::create(2,ccp(10,20));
  3. CCMoveTo* move_3 = CCMoveBy::create(2,ccp(10,20));
  4. CCSequence* seq = CCSequence::create(move_1,move_2,move_3,NULL);
  5. sprite->runAction(seq);
复制代码


CCSpawn:同时执行一系列动作,执行的时间以子动作中最长事件为准。

  1. CCSpawn* action = CCSpawn::create( 
  2. CCJumpBy::create(2 ,ccp(300,0) ,50 ,4), 
  3. CCRotateBy::create(2,720), NULL); 
  4. sprite->runAction(action);
复制代码


CCRepeat:有限次重复一个动作。

  1. CCMoveBy* action = CCMoveBy::create(2,ccp(10,10));
  2. CCRepeat* repeat = CCRepeat::create(action,3);
  3. sprite->runAction(repeat);
复制代码


CCRepeatForerver:无限次重复一个动作。

  1. CCRotateBy* rotate = CCRotateBy::create(1.0,360); 
  2. CCRepeatForever* action2 = CCRepeatForever::create(rotate); 
  3. sprit->runAction(action2);
复制代码
分享到:
评论

相关推荐

    Cocos2d-JS游戏开发

    Cocos2d-JS是一款强大的2D游戏开发框架,它结合了JavaScript的灵活性与Cocos2d-x的高效性能,让开发者能够轻松地创建跨平台的游戏。本篇将深入探讨Cocos2d-JS的游戏开发知识,从基础到进阶,帮助你掌握这一利器。 ...

    cocos2d-x-3.1.zip

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

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

    本书以C++语言为主要编程工具,详细介绍了如何利用Cocos2d-x进行游戏开发。 首先,Cocos2d-x的基础知识是必须掌握的。Cocos2d-x基于C++,但也支持Lua和JavaScript,但本书主要关注C++的使用。C++作为一门强大的系统...

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

    4. **Action系统**:cocos2d-x的动作系统允许开发者轻松实现物体的移动、旋转、缩放等效果,极大地简化了动画制作。 5. **Scene和Layer**:通过Scene和Layer的概念,可以组织游戏的场景和层次结构,方便管理游戏...

    cocos2d-iphone-2.0.tar.gz

    3. **Action和Effects**:Cocos2d-iPhone提供了一系列动作和效果类,如移动、旋转、缩放、淡入淡出等,方便开发者快速创建复杂的动画序列。 4. **Scene Management**:通过CCDirector和CCScene类,开发者可以轻松...

    Cocos2d-JS开发之旅 从HTML 5到原生手机游戏 PDF 带书签目录 完整版

    首先,Cocos2d-JS的核心概念包括场景(Scene)、层(Layer)、精灵(Sprite)、动作(Action)等。场景是游戏中的一个独立单元,可以包含多个层,层则负责管理游戏中的各种元素。精灵是游戏中的基本图形对象,可以...

    Cocos2d-x学习笔记

    下面将详细介绍如何通过Cocos2d-x的官方文档进行入门学习,以及一些基础的开发步骤。 首先,进入Cocos2d-x的官方网站,下载最新的开发包。对于初学者而言,可以先从Windows平台开始学习,因为它的安装配置相对简单...

    Cocos2d-JS---demo

    Cocos2d-JS 是一个基于 JavaScript 的游戏开发框架,它是 Cocos2d-x 的 JavaScript 版本。这个“Cocos2d-JS---demo”压缩包包含的是使用 Cocos2d-JS 开发的游戏或应用的示例,用于展示其功能和效果。通过将这些 demo...

    cocos2d-x源码素材

    cocos2d-x的动画系统支持帧动画和动作(Action)动画。帧动画可以通过`CCSpriteBatchNode`和`CCAnimation`类来实现,将多张图片序列化成一个动画效果。动作动画则包括平移、旋转、缩放等多种效果,可以组合形成复杂...

    《Cocos2d-Js开发之旅-从HTML5到原生手机游戏》完整源码

    3. **动画**:Cocos2d-Js支持帧动画和动作(Action),可以实现角色行走、攻击等各种动态效果。源码中会包含各种类型的动画实现,如精灵帧动画、序列动作等。 4. **物理引擎**:Cocos2d-Js集成了Box2D物理引擎,...

    cocos2d-x 2.x action集合(详细注释分类)

    在这个"cocos2d-x 2.x action集合(详细注释分类)"的资源中,你将深入学习到如何使用动作(Action)来控制游戏对象的行为,从而实现各种动态效果。 1. **动作(Action)基础**: 动作是Cocos2d-x中改变节点(Node)...

    《Cocos2d-x实战 Lua卷》源码.7z

    1. **Cocos2d-x架构**:了解Cocos2d-x的核心组件,如场景(Scene)、层(Layer)、精灵(Sprite)、动作(Action)等,以及如何用Lua来控制这些元素。 2. **Lua与C++交互**:Cocos2d-x支持Lua作为脚本语言,源码会展示如何...

    cocos2d-x 《保卫萝卜》源代码

    《保卫萝卜》是一款深受玩家喜爱的塔防类游戏,它基于Cocos2d-x引擎开发。Cocos2d-x是一个跨平台的2D游戏开发框架,由C++编写,但支持Lua和Python等多种脚本语言,让开发者可以快速构建游戏。在这里,我们将深入探讨...

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

    - **动作(Action)**:cocos2d-x提供了丰富的动作类,如移动、旋转、缩放,用于实现角色和物体的动画效果。 - **层(Layer)**:作为游戏界面的基本单位,用于组织和管理屏幕上的元素。 - **物理引擎(Box2D)**...

    cocos2d-x入门讲解

    Cocos2d-x的渲染引擎基于OpenGL ES,提供了丰富的图形绘制API,包括精灵(Sprite)、层(Layer)、场景(Scene)、动作(Action)等,让开发者可以轻松构建2D游戏世界。 四、精灵与动作 精灵是Cocos2d-x中的基本...

    cocos2d-x教程

    Cocos2d-x是一个开源的游戏开发框架,广泛用于创建2D和3D游戏,教育软件,模拟器等跨平台应用程序。这个教程将深入探讨cocos2d-x的使用方法,帮助开发者掌握其核心概念和功能。 一、cocos2d-x概述 cocos2d-x是基于...

    cocos2d-x-2.1.4.zip

    《cocos2d-x-2.1.4:探索早期游戏开发引擎的奥秘》 cocos2d-x-2.1.4.zip是一个珍贵的压缩包,它包含了早期版本的cocos2d-x游戏开发引擎的源代码。cocos2d-x是一个广泛使用的开源跨平台2D游戏开发框架,其基于cocos...

    Cocos2d-js项目教程和Cocos2d-JS开发之旅 从HTML 5到原生手机游戏 PDF 带书签目录 完整版

    总的来说,"Cocos2d-js项目教程和Cocos2d-JS开发之旅"涵盖了从基础概念到高级技术的全面内容,无论你是初学者还是有一定经验的开发者,都能从中受益。通过学习,你将能够熟练运用Cocos2d-js开发出富有创新和吸引力的...

    贪吃蛇cocos2d-x

    3. **动作(Action)和动画(Animation)**:Cocos2d-x的动作系统允许你对Sprite执行各种动态效果,如移动、旋转、缩放等。在贪吃蛇游戏中,蛇的移动就是一个持续的动作。同时,动画是通过组合多个动作来实现的,...

    cocos2d-js 开发之旅-源代码

    2. **节点(Node)**:节点是cocos2d-js中的基本构建块,包括各种类型,如精灵(Sprite)、层(Layer)、动作(Action)等。节点可以包含子节点,形成一个树形结构,支持位置、旋转、缩放等变换。 3. **精灵...

Global site tag (gtag.js) - Google Analytics