CCAction在cocos2dx中,抽象了节点的动作。它由CCObject派生,因此它不是渲染节点。

它经常的用法是,创建一个action,然后让某个CCNode对象(一般是精灵),去执行它。

在马里奥代码里,执行马里奥跳跃的代码如下:

//增加跳跃运动
CCJumpTo *pJump = CCJumpTo::create(_MARIO_BASIC_JUMP_TIME_,ccp(getPositionX(),getPositionY()-10.f),_MARIO_BASIC_JUMP_HEIGHT_,1);
if(pJump==NULL)
{
CCAssert(false,"Can't Create Jump!");
return;
}
//为Jump设置独立的Tag
pJump->setTag(enTagOfActionJump);
runAction(pJump);

CCJumpTo是CCAction的一个派生类,创建了jump这个动作后,由马里奥对象执行runAction,完成马里奥的跳跃。

在实际的工作中,往往使用的是CCAction的子类,CCAction有丰富的子类,来抽象各种动作,比如上面例子中的跳跃,还有移动,瞬间移动等。

具体的CCAction的派生类有以下:

CCFlipX和CCFlipY:水平翻转和竖直翻转

CCPlace:放置

CCHide和CCShow:隐藏和显示

CCToggleVisibility:可见开关,执行一次从可见到不可见,再执行一次就反过来

CCReuseGrid和CCStopGrid:使用和停止网格动作

CCCallFunc,CCCallFuncND,CCCallFuncN,CCCallFuncO:函数调用动作,执行这个动作只是执行一个函数

CCMoveBy,CCMoveTo,CCJumpBy,CCJumpTo,CCBezierBy,CCBezierTo:精灵移动动作

CCScaleBy,CCScaleTo:缩放动作

CCRotateBy,CCRotateTo:旋转动作

CCSkewTo,CCSkewBy:倾斜动作

CCFadeIn,CCFadeOut,CCFadeTo:淡化动作

CCTineBy,CCTineTo:颜色变化动作

CCBlink:闪烁动作

CCSequence:连续动作,连续动作通过几个action构造,执行这个序列时,实际执行的参数指定的那些动作

CCSpawn:同时动作,跟连续动作不同的时,参数指定的几个动作会同时执行

CCRepeat和CCRepeatForever:重复执行

CCEaseIn,CCEaseOut,CCEaseInOut:可变速度动作类

CCDelay:延迟动作类

CCFollow:跟随动作类

这里把所有的action都列出来,并没有详细展开讨论,大家可以写个代码去验证一下,各种action的乐趣

cocos2dx进阶学习之CCAction的更多相关文章

  1. cocos2dx进阶学习之场景切换

    背景 在学习马里奥时,我们学习到从菜单场景到游戏场景的切换,代码如下 void CMMenuScene::OnStartCallBack( CCObject *pSender ) { CCDirect ...

  2. cocos2dx进阶学习之CCNode

    继承关系 CCNode  -> CCObject CCNode在cocos2dx中抽象舞台对象,需要渲染的对象都是从CCNode派生,包括CCScene,CCLayer,CCSprite等等 C ...

  3. cocos2dx进阶学习之CCScene

    继承关系 CCScene -> CCNode -> CCObject CCScene抽象了一个场景的概念,类似舞台的一幕 函数 static CCScene *create(void); ...

  4. cocos2dx进阶学习之屏幕适配

    背景 在学习cocos2dx时,我们在main函数中发现一句代码, #include "main.h" #include "AppDelegate.h" #in ...

  5. cocos2dx进阶学习之CCEGLView

    继承关系 CCEGLView-> CCEGLViewProtocol CCEGLView是窗口,在不同平台上有不同的实现,而CCEGLViewProtocol是CCEGLView定义的接口,所以 ...

  6. cocos2dx进阶学习之瓦片地图编辑器

    之前学习了瓦片地图类,现在我们来学习下瓦片地图制作工具 这个是开源的工具,可以从网上下载,下面我们演示下怎么做地图 步骤1 将需要用到的图片放到一个目录下,比如我机器上就是d:\tiled,这些图片是 ...

  7. cocos2dx进阶学习之CCTMXTiledMap

    继承关系 CCTMXTiledMap -> CCNode 它由CCNode派生,我们已经知道CCNode是cocos2dx的舞台对象的公共父类,所以CCTMXTiledMap也是个舞台对象 成员 ...

  8. cocos2dx进阶学习之CCSprite

    继承关系 CCSprite -> CCNodeRGBA       ->   CCNode, CCRGBAProtocol CCTextureProtocol 从继承关系可以看出,CCSp ...

  9. cocos2dx进阶学习之CCLayer

    继承关系 CCLayer -> CCNode,CCTouchDelegate,CCAccelerometerDelegate,CCKeypadDelegate CCLayer在cocos2dx中 ...

随机推荐

  1. android 视频播放器的INTENT-FILTER属性

    <intent-filter>                   <action android:name="android.intent.action.VIEW&quo ...

  2. sql 分割字符串 存储过程

    默认是用 , 分割,如有需要可以自己更改 我写的是 循环插入数据 存储过程,也可以自己改成 方法使用 存储过程: ),@jrid int) as begin declare @location int ...

  3. Android Gradle 配置选项合集

    //让gradle 引入构建安卓app的插件 apply plugin: 'com.android.application' //自定义变量, 使用的时候不需要 ext 前缀 ext { minSdk ...

  4. C-重定向

    说实话,第一次接触重定向这一个概念,感觉是那么的神奇简洁不可思议…………………… freopen() 本来应该是打开的是文件指针,但是分配了指针,使她(亲切)指向了标准输入.输出.错误流. 用 法: ...

  5. 合理设计C代码 函数笔记

    本文首先用判断一个数字是否为素数使用For循环实现做例子,之后用函数完成多个功能. 什么是素数? 素数又成质数,不包含1和0.通俗的去说就是它除了能表示为它自己和1的乘积以外,不能表示为任何其它两个整 ...

  6. ASP.NET 使用My97DatePicker日期控件

    首先要下载该控件的包,下载地址:http://pan.baidu.com/s/1Aa5gk 引用文件 <script src="js/My97DatePicker/WdatePicke ...

  7. QString类的使用(无所不包,极其方便)

    Qt的QString类提供了很方便的对字符串操作的接口. 使某个字符填满字符串,也就是说字符串里的所有字符都有等长度的ch来代替. QString::fill ( QChar ch, int size ...

  8. MFC模式对话框与非模式对话框 消息处理顺序

    对话框有两种创建方式:DoModal和Creat. 其中DoModal创建的是模态的对话框,而Creat创建的是非模态的对话框下面总结下他们的不同. 对于模态的对话框,在该对话框被关闭前,用户将不能在 ...

  9. zip文件压缩(转)

    zip文件结构            上面中的每一行都是一个条目,zip文件就是由一个或者多个条目组成.      条目在Java中对应ZipEntry类         创建zip压缩文件     ...

  10. golang ODBC 访问access数据库(问题解决之心理路程)

    最近项目需要,需要操作access,以前是用VC++ OLE访问,网络用ACE库,感觉很庞大...决定用go试试 网上用的最多的就是这个https://github.com/weigj/go-odbc ...