cocos2dx进阶学习之CCAction

来源:互联网 发布:ubuntu find 查找文件 编辑:程序博客网 时间:2024/05/22 20:28


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设置独立的TagpJump->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的乐趣

0 0