一般对于游戏中的精灵而言,它们不仅仅是存在于场景中,而且是动态展现的,例如,精灵移动的动态效果、动
画效果、跳动效果、闪烁和旋转动态效果等。每一种效果都可以看成是精灵的一个动作。
一、动作类(CCAction)
和之前介绍的内容不同,Cocos2D-X的动作类CCAction并不是一个在屏幕中显示的对象,动作必须要依托于
CCNode类及它的子类的实例才能发挥作用。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()