深秋

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

动作在游戏中有举足轻重的作用,它让游戏中的元素活了起来,比如单击一个按钮使用一个特效让玩家明显的感觉到点了这个按钮;角色的移动,攻击等等都离不开动作。因此Cocos2DX也为我们提供了丰富强大的动作系统。

CCNode与动作基类

CCNode中定义了动作有关的函数,也就是说根源种子类以及子类都能够执行动作。

//执行一个动作,并返回该动作
    CCAction* runAction(CCAction* action);
    //移除所有动作
    void stopAllActions(void);
    //根据动作参数移除指定的动作
    void stopAction(CCAction* action);
    //根据标签移除动作
    void stopActionByTag(int tag);
   //根据标签获取动作
    CCAction* getActionByTag(int tag);
    //获取当前对象执行动作的总数
    unsigned int numberOfRunningActions(void);

          上面函数都有详细的注释就不再解释了,下面看看动作基类CCAction。

         image

        CCAction和CCNode一样都直接集成了CCObject,可见Cocos2DX将动作作为一个单独的系统来处理。从上图也可以看出动作主要根据时间来划分,当然还有两个比较特殊的动作类:跟随动作CCFollow和速度动作CCSpeed。按照时间属性来划分引擎将动作分为了即时动作CCActionInstant和持续动作CCActionInterval两大类。前面也学习到不少元素现在我们来看看动作系统的位置(书上的图能说明问题借用了01BEC22E):

image

     即时动作CCActionInstant动作执行马上就能见到效果的动作

  • CCFlipX 与 CCFlipY 将精灵对象水平垂直翻转;
  • CCPlace :将精灵对象放置在指定的位置(注意该动作不会影响其他属性如精灵对象的显示状态);
  • CCHide与CCShow:控制精灵对象的显示还是隐藏的动作;
  • CCToggleVisibility:精灵对象显示与隐藏的开关动作,也就是原来的隐藏的执行该动作后就为显示,反之亦然;
  • CCReuseGrid与CCStopGrid:网格动作;
  • CCCallFunc:函数回调动作,这个和C#中的委托使用有点像是,它又有三个子类:CCCallFuncND、CCCallFuncN、CCCallFuncO,三者的不同就是参数不同,使用中再详细了解。

 

    持续动作CCActionInterval:动作执行将持续一段时间的动作

         持续动作按照影响精灵对象属性的不懂也分不同的种类:

     位置相关的动作(XX表示To或By-- To表示移动的具体结果;By表示动作执行程度或速率)

  • CCMoveXX : 移动对象移动到指定的位置
  • CCJumpXX:跳跃到到指定位置
  • CCBezierXX:按照贝塞尔曲线移动到指定位置

               缩放动作:CCScaleXX

     旋转动作:CCRotateXX

     倾斜动作:CCSkewXX

     颜色相关动作(XX表示In、Out或To -- )

  • CCFadeXX:淡入淡出动作,该动作修改CCNode对象的透明度
  • CCTintXX : 变化到指定的颜色
  • CCBlink :闪烁效果,通过修改可见属性实现

    组合动作:有基本动作类组合而成

  • 序列动作CCSequence:按照顺序执行其中的基本动作
  • 同步动作CCSpawn:同时执行多个动作
  • 重复动作CCRepeat 和CCRepeatForever

    动画动作:

   可变速度动作CCEaseAction:改变动作执行的速度       

image

       引擎的动作大部分都罗列出来,今天就先熟悉一下,在后面的学习中再慢慢理解各个动作的使用。

posted on 2014-05-21 23:58  深秋  阅读(278)  评论(0编辑  收藏  举报