2011-06-14 14:31:25 +08:00
|
|
|
#include "ccTypes.h"
|
|
|
|
#include "CCObject.h"
|
|
|
|
#include "CCZone.h"
|
|
|
|
#include "CCNode.h"
|
|
|
|
|
|
|
|
namespace cocos2d {
|
|
|
|
|
|
|
|
enum {
|
|
|
|
kCCActionTagInvalid = -1,
|
|
|
|
};
|
|
|
|
|
|
|
|
class CCAction : public CCObject
|
|
|
|
{
|
|
|
|
|
|
|
|
CCAction(void);
|
|
|
|
char * description();
|
|
|
|
CCObject* copyWithZone(CCZone *pZone);
|
|
|
|
bool isDone(void);
|
|
|
|
void startWithTarget(CCNode *pTarget);
|
|
|
|
void stop(void);
|
|
|
|
void step(ccTime dt);
|
|
|
|
void update(ccTime time);
|
|
|
|
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
|
|
|
|
{
|
|
|
|
CCFiniteTimeAction();
|
|
|
|
~CCFiniteTimeAction(){}
|
|
|
|
//! get duration in seconds of the action
|
|
|
|
ccTime getDuration(void);
|
|
|
|
//! set duration in seconds of the action
|
|
|
|
void setDuration(ccTime duration);
|
|
|
|
|
|
|
|
|
|
|
|
virtual CCFiniteTimeAction* reverse(void);
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class CCActionInterval;
|
|
|
|
class CCRepeatForever;
|
|
|
|
|
|
|
|
class CCSpeed : public CCAction
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
CCSpeed();
|
|
|
|
virtual ~CCSpeed(void);
|
|
|
|
|
|
|
|
float getSpeed(void);
|
|
|
|
/** alter the speed of the inner function in runtime */
|
|
|
|
void setSpeed(float fSpeed);
|
|
|
|
|
|
|
|
/** initializes the action */
|
|
|
|
bool initWithAction(CCActionInterval *pAction, float fRate);
|
|
|
|
|
|
|
|
CCObject* copyWithZone(CCZone *pZone);
|
|
|
|
void startWithTarget(CCNode* pTarget);
|
|
|
|
void stop();
|
|
|
|
void step(ccTime dt);
|
|
|
|
bool isDone(void);
|
|
|
|
CCActionInterval* reverse(void);
|
2011-07-08 18:31:02 +08:00
|
|
|
|
|
|
|
void setInnerAction(CCActionInterval *pAction);
|
|
|
|
CCActionInterval* getInnerAction();
|
2011-06-14 14:31:25 +08:00
|
|
|
|
|
|
|
static CCSpeed* actionWithAction(CCActionInterval *pAction, float fRate);
|
|
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class CCFollow : public CCAction
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
CCFollow();
|
|
|
|
|
|
|
|
bool isBoundarySet(void);
|
|
|
|
void setBoudarySet(bool bValue);
|
|
|
|
bool initWithTarget(CCNode *pFollowedNode);
|
|
|
|
bool initWithTarget(CCNode *pFollowedNode, CCRect rect);
|
|
|
|
virtual CCObject* copyWithZone(CCZone *pZone);
|
|
|
|
virtual void step(ccTime dt);
|
|
|
|
virtual bool isDone(void);
|
|
|
|
virtual void stop(void);
|
|
|
|
|
|
|
|
static CCFollow* actionWithTarget(CCNode *pFollowedNode);
|
|
|
|
static CCFollow* actionWithTarget(CCNode *pFollowedNode, CCRect rect);
|
|
|
|
|
|
|
|
};
|
|
|
|
}//namespace cocos2d
|