【Cocos2d-X开发学习笔记】第12期:动作类CCAction的详细讲解

时间:2023-02-08 16:14:44

     

 

       一般对于游戏中的精灵而言,它们不仅仅是存在于场景中,而且是动态展现的,例如,精灵移动的动态效果、动

画效果、跳动效果、闪烁和旋转动态效果等。每一种效果都可以看成是精灵的一个动作。

 

 

一、动作类(CCAction

 

        和之前介绍的内容不同,Cocos2D-X的动作类CCAction并不是一个在屏幕中显示的对象,动作必须要依托于

CCNode类及它的子类的实例才能发挥作用。CCAction类的继承关系如下图所示。

【Cocos2d-X开发学习笔记】第12期:动作类CCAction的详细讲解

 

     CCAction类是所有动作类的基类,这也是我们后面将要学习到的所有动作类都是它的子类。而且Cocos2D-X提供

的动作,不仅精灵CCSprite可以使用,只要是CCNode对象都是可以进行动作操作的。

 

 

二、动作常用操作

 

1、对于一个动作的常用操作

 

<1> 执行一个动作:runAction(CCAction * action)

参数:要执行的动作对象。

 

<2> 暂停一个动作:CCDirector::sharedDirector()->getActionManager()->pauseTarget(CCObject * pTarget)

参数:暂停目标对象的动作。

 

<3> 继续一个动作:CCDirector::sharedDirector()->getActionManager()->resumeTarget(CCObject * pTarget)

参数:继续目标对象的动作。

 

<4> 停止一个动作:

① stopAction(CCAction * action)

参数:停止的目标动作对象。

 

stopActionByTag(int tag)

参数:停止的目标动作对象。

 

<5> 删除一个动作:

CCDirector::sharedDirector()->getActionManager()->removeAction(CCAction* action)

参数:要删除的目标动作对象。

 

CCDirector::sharedDirector()->getActionManager()->removeActionByTag(unsigned int tag,CCObject * pTarget)

参数1:要删除的动作的tag值。

参数2:要删除的动作所在的目标对象。

 

2、对于多个动作的常用操作

 

<1> 暂停所有动作:

pauseSchedulerAndActions()

作用:此函数不仅对所用动作进行暂停,连其更新函数也全部进行暂停。

 

② CCSet * CCDirector::sharedDirector()->getActionManager()->pauseAllRunningActions()

作用:此函数暂停所有动作,且将暂停的动作对象记录存放在CCSet集合中。

 

<2> 继续所有动作:

resumeSchedulerAndActions()

 

CCDirector::sharedDirector()->getActionManager()->resumeTargets(CCSet * targetsToResume)

作用:利用记录的已暂停动作的CCSet集合,将其动作继续播放。

 

<3> 停止所有动作:stopAllActions()

 

<4> 删除所有动作:CCDirector::sharedDirector()->getActionManager()->removeAllRunningActions()