【玩转cocos2d-x之九】动作类CCAction
精灵也出来了,但是不会动的精灵是木有用的。。。CCAction就是负责来解决精灵运动的问题。
概况
CCAction直接从CCObject继承而来,注意它代表的是一个动作,是动词。精灵执行了这个动作,而不是名词。CCAction本身并没有什么功能,主要是定义了一些通用函数和虚函数让子类实现多态性。
接口
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| const char* description();
virtual bool isDone(void);
virtual void startWithTarget(CCNode *pTarget);
virtual void update(float time);
CCNode* getTarget(void); void setTarget(CCNode *pTarget);
CCNode* getOriginalTarget(void); void setOriginalTarget(CCNode *pOriginalTarget);
int getTag(void); void setTag(int nTag);
static CCAction* create();
|
CCFollow
CCFollow跟随动作,继承于CCAction,可以实现节点跟随另一个节点动作。它内部封装了一个boundary,也就是跟随范围,初始为CCRectZero。
1 2 3
| static CCFollow* create(CCNode *pFollowedNode, const CCRect& rect = CCRectZero); bool initWithTarget(CCNode *pFollowedNode, const CCRect& rect = CCRectZero);
|
CCSpeed
CCSpeed可调整速度动作类,内部封装了一个速度值,CCSpeed使用很简单,就是传入一个动作和速度,在内部重新copy一个新的动作返回。
1 2
| static CCSpeed* create(CCActionInterval* pAction, float fSpeed);
|
CCFiniteTimeAction
CCFiniteTimeAction有限次动作执行类,继承于CCAction,它有两个子类CCActionInstant和CCActionInterval,前者代表瞬时动作,也就是这个动作基本不需要时间马上就能完成,而后者代表延时,这个动作需要一段时间来运行。它的子类说明看上图吧。
相比CCAction,它多了一个m_fDuration属性,表示持续时间。
1 2 3 4 5 6
| float getDuration(void); void setDuration(float duration);
virtual CCFiniteTimeAction* reverse(void);
|
好了,游戏的基本元素就写到这里,写API文档很蛋疼的说。。。