cocos2dx提供了丰富的动作实现的类。其中最主要的两个类是CCAction和CCActionManager,CCAction是所有动作的基类,类中有几个很重要的方法:
virtual void startWithTarget(CCNode *pTarget); //设置动作的目标virtual void stop(void); //停止动作virtual void step(float dt); //心跳,每一帧都会掉到,后面会介绍是怎么调用这个方法的virtual void update(float time); //更新动作,由step()调用类CCActionManager管理所有的动作;主要方法有:void addAction(CCAction *pAction, CCNode *pTarget, bool paused);这个方法会把一个CCAction对象交给CCActionManager管理,里面具体是用一个hashmap存起来的,而CCActionManager在CCDirector中会被当做一个singleton使用,每一帧都会去update;// CCDirector action manager m_pActionManager = new CCActionManager(); m_pScheduler->scheduleUpdateForTarget(m_pActionManager, kCCPrioritySystem, false);简单来做,就是CCDirector::drawScene() -> CCSchedule::update() -> CCActionManager::update() ->CCAction::step() -> CCAction::update();下面介绍CCAction的分类架构:(1)CCFiniteTimeAction : public CCAction: 表示这是一个线性的动画,新加了setDuration()//间隔和reverse()方法;(2)CCActionInterval : public CCFiniteTimeAction:这是一个延时动画,主要重写了step()方法;(3)CCActionInstant : public CCFiniteTimeAction : 这是一个即时动画,主要重写tep()和update()方法;(4)CCShow........一系列具体动作实现类,主要重写update后,在这个方法中进行具体操作。
Cocos2d-x 动作系统详解
本文深入探讨了Cocos2d-x提供的丰富动作实现类,包括CCAction和CCActionManager的作用,详细解释了如何管理和使用这些动作类,并介绍了不同类型的动作分类架构,如CCFiniteTimeAction、CCActionInterval、CCActionInstant等。
691

被折叠的 条评论
为什么被折叠?



