enum { kCCActionTagInvalid = -1, }; class CCAction : public CCObject { bool isDone(void); CCNode* getTarget(void); void setTarget(CCNode *pTarget); CCNode* getOriginalTarget(void); void setOriginalTarget(CCNode *pOriginalTarget); int getTag(void); void setTag(int nTag); static CCAction* action(); }; class CCFiniteTimeAction : public CCAction { ccTime getDuration(void); void setDuration(ccTime duration); CCFiniteTimeAction* reverse(void); }; class CCSpeed : public CCAction { float getSpeed(void); void setSpeed(float fSpeed); CCActionInterval* reverse(void); static CCSpeed* actionWithAction(CCActionInterval *pAction, float fRate); }; class CCFollow : public CCAction { bool isBoundarySet(void); void setBoudarySet(bool bValue); static CCFollow* actionWithTarget(CCNode *pFollowedNode); static CCFollow* actionWithTarget(CCNode *pFollowedNode, CCRect rect); };