class CC_DLL CCAction : public CCObject
{
public:
CCAction(void);
virtual ~CCAction(void);
const char* description();
// 用於動作拷貝
virtual CCObject* copyWithZone(CCZone *pZone);
// 查詢動作是否已做完
virtual bool isDone(void);
// 動作調用之前調用
virtual void startWithTarget(CCNode *pTarget);
// 動作完成後調用
virtual void stop(void);
// 每幀都會調用
virtual void step(float dt);
// 每幀調用來更新動作
virtual void update(float time);
// 獲取Target節點
inline CCNode* getTarget(void) { return m_pTarget; }
inline void setTarget(CCNode *pTarget) { m_pTarget = pTarget; }
inline CCNode* getOriginalTarget(void) { return m_pOriginalTarget; }
inline void setOriginalTarget(CCNode *pOriginalTarget) { m_pOriginalTarget = pOriginalTarget; }
// 設置、獲取tag值
inline int getTag(void) { return m_nTag; }
inline void setTag(int nTag) { m_nTag = nTag; }
// 創建動作對象
static CCAction* create();
};
// 有限時間的動作對象
class CC_DLL CCFiniteTimeAction : public CCAction
{
public:
CCFiniteTimeAction();
virtual ~CCFiniteTimeAction();
// 獲取、設置動作的持續時間
inline float getDuration(void) { return m_fDuration; }
inline void setDuration(float duration) { m_fDuration = duration; }
// 取該動作對象的逆序
virtual CCFiniteTimeAction* reverse(void);
};
class CCActionInterval;
class CCRepeatForever;
// 改變動作對象的速度,Useful to simulate 'slow motion' or 'fast forward' effect.
class CC_DLL CCSpeed : public CCAction
{
public:
CCSpeed();
virtual ~CCSpeed(void);
// 設置、獲取速度,alter the speed of the inner function in runtime
inline float getSpeed(void) { return m_fSpeed; }
inline void setSpeed(float fSpeed) { m_fSpeed = fSpeed; }
// 初始化動作對象
bool initWithAction(CCActionInterval *pAction, float fSpeed);
// 繼承父類函數
virtual CCObject* copyWithZone(CCZone *pZone);
virtual void startWithTarget(CCNode* pTarget);
virtual void stop();
virtual void step(float dt);
virtual bool isDone(void);
virtual CCActionInterval* reverse(void);
// 設置內部動作對象
void setInnerAction(CCActionInterval *pAction);
inline CCActionInterval* getInnerAction();
// 創建該動作
static CCSpeed* create(CCActionInterval* pAction, float fSpeed);
protected:
float m_fSpeed;
CCActionInterval *m_pInnerAction;
};
// 跟隨節點的動作對象
class CC_DLL CCFollow : public CCAction
{
public:
CCFollow();
virtual ~CCFollow(void);
// 開啓、關閉邊界
inline bool isBoundarySet(void) { return m_bBoundarySet; }
inline void setBoudarySet(bool bValue) { m_bBoundarySet = bValue; }
// 初始化對象
bool initWithTarget(CCNode *pFollowedNode, const CCRect& rect = CCRectZero);
// 繼承父類函數
virtual CCObject* copyWithZone(CCZone *pZone);
virtual void step(float dt);
virtual bool isDone(void);
virtual void stop(void);
// 創建跟隨動作對象
static CCFollow* create(CCNode *pFollowedNode, const CCRect& rect = CCRectZero);
};
CCAction類
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.