Cocos2d-x(八)动作类CCAction
2014-09-09 15:28
489 查看
转载自:http://blog.csdn.net/jackystudio/article/details/12770909
精灵也出来了,但是不会动的精灵是木有用的。。。CCAction就是负责来解决精灵运动的问题。
CCAction直接从CCObject继承而来,注意它代表的是一个动作,是动词。精灵执行了这个动作,而不是名词。CCAction本身并没有什么功能,主要是定义了一些通用函数和虚函数让子类实现多态性。
plaincopy
//返回一个描述
const char* description();
//返回动作是否结束
virtual bool isDone(void);
//在动作开始前调用,需要设置目标精灵
virtual void startWithTarget(CCNode *pTarget);
//每帧调用,time在0~1之间,0代表动作刚开始,0.5代表动作执行一半,1代表动作结束
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();
[cpp] view
plaincopy
//创建一个CCFollow对象,create实际上调用了initWithTarget
static CCFollow* create(CCNode *pFollowedNode, const CCRect& rect = CCRectZero);
bool initWithTarget(CCNode *pFollowedNode, const CCRect& rect = CCRectZero);
[cpp] view
plaincopy
//创建一个可变速度动作类,传入速度值
static CCSpeed* create(CCActionInterval* pAction, float fSpeed);
相比CCAction,它多了一个m_fDuration属性,表示持续时间。
[cpp] view
plaincopy
//获取/设置动作持续时间
float getDuration(void);
void setDuration(float duration);
//反转动作,类似于倒带效果,返回一个新的动作
virtual CCFiniteTimeAction* reverse(void);
精灵也出来了,但是不会动的精灵是木有用的。。。CCAction就是负责来解决精灵运动的问题。
1.概况
CCAction直接从CCObject继承而来,注意它代表的是一个动作,是动词。精灵执行了这个动作,而不是名词。CCAction本身并没有什么功能,主要是定义了一些通用函数和虚函数让子类实现多态性。
2.接口
[cpp] viewplaincopy
//返回一个描述
const char* description();
//返回动作是否结束
virtual bool isDone(void);
//在动作开始前调用,需要设置目标精灵
virtual void startWithTarget(CCNode *pTarget);
//每帧调用,time在0~1之间,0代表动作刚开始,0.5代表动作执行一半,1代表动作结束
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();
3.CCFollow
CCFollow跟随动作,继承于CCAction,可以实现节点跟随另一个节点动作。它内部封装了一个boundary,也就是跟随范围,初始为CCRectZero。[cpp] view
plaincopy
//创建一个CCFollow对象,create实际上调用了initWithTarget
static CCFollow* create(CCNode *pFollowedNode, const CCRect& rect = CCRectZero);
bool initWithTarget(CCNode *pFollowedNode, const CCRect& rect = CCRectZero);
4.CCSpeed
CCSpeed可调整速度动作类,内部封装了一个速度值,CCSpeed使用很简单,就是传入一个动作和速度,在内部重新copy一个新的动作返回。[cpp] view
plaincopy
//创建一个可变速度动作类,传入速度值
static CCSpeed* create(CCActionInterval* pAction, float fSpeed);
5.CCFiniteTimeAction
CCFiniteTimeAction有限次动作执行类,继承于CCAction,它有两个子类CCActionInstant和CCActionInterval,前者代表瞬时动作,也就是这个动作基本不需要时间马上就能完成,而后者代表延时,这个动作需要一段时间来运行。它的子类说明看上图吧。相比CCAction,它多了一个m_fDuration属性,表示持续时间。
[cpp] view
plaincopy
//获取/设置动作持续时间
float getDuration(void);
void setDuration(float duration);
//反转动作,类似于倒带效果,返回一个新的动作
virtual CCFiniteTimeAction* reverse(void);
相关文章推荐
- Cocos2d-x 动作之动作原理——CCActionManager的工作原理
- Cocos2d-x学习笔记(二十一)之 动作管理类CCActionManager
- cocos2d-x CCAction:动作(转)
- COCOS2D-X 动作类 瞬时动作CCActionInstant
- 【Cocos2D-X 游戏引擎】初窥门径(5)CCAction:动作
- 【Cocos2D-X 游戏引擎】初窥门径(5)CCAction:动作
- 【Cocos2d-X开发学习笔记】第19期:动作管理类(CCActionManager)的使用
- cocos2d-x初探学习笔记(3)--动作(CCAction)
- 【Cocos2d-X开发学习笔记】第19期:动作管理类(CCActionManager)的使用
- cocos2d-x初探学习笔记(3)--动作(CCAction)
- cocos2d-x初探学习笔记(3)--动作(CCAction)
- cocos2d-x初探学习笔记(3)--动作(CCAction)
- cocos2d-x初探学习笔记(3)--动作(CCAction)
- cocos2d-x CCAction动作学习笔记
- cocos2d-x节点(CCActionCamera.h)API
- Cocos2d-x 3.1.1 Lua演示样例 ActionManagerTest(动作管理)
- Cocos2d-x学习:动作Action(延时类动作)[2.0.1]
- Cocos2d-x CCActionInterval
- 【iOS-Cocos2d游戏开发】Cocos2d-iPhone动作Action-扩展动作
- cocos2d-x节点(CCActionCatmullRom.h)API