zoukankan      html  css  js  c++  java
  • cocos2dx进阶学习之CCAction


    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的乐趣

  • 相关阅读:
    回调函数
    zoj 2104
    zoj 1760
    ppt 图的基本算法 dfs
    zoj 2110 Tempter of the Bone
    优先队列 priority_queue 55 nyist
    STL的队列和栈简单使用
    poj 2246 递归 zoj 1094
    nyist 8 set的应用
    bailian 2694
  • 原文地址:https://www.cnblogs.com/new0801/p/6177204.html
Copyright © 2011-2022 走看看