Cocos2d-x CCActionInterval
来源:未知 责任编辑:责任编辑 发表时间:2013-11-26 22:12 点击:次
第一部分:CCActionInterval家族(持续动作)
p>
p>持续动作,顾名思义,就是该动作的执行将持续一段时间。因此持续动作的静态生成函数,往往附带一个时间值Duration。例如:
p>CCActionInterval *moveByAction=CCMoveBy::actionWithDuration(0.5f,ccp(5,5));
p>
p>持续动作类名后缀:一般有两种后缀,一种是To,一种是By。To表示最终达到的目标值,By表示增量值。如:
p>CCMoveBy::actionWithDuration(0.5f,ccp(5,5));//表示花0.5秒,按向量(5,5)移动一段距离
p>CCMoveTo::actionWithDuration(0.5f,ccp(5,5));//表示花0.5秒,移动到坐标(5,5)
p>
p>持续动作比立即动作的数量要多很多,常用的CCActionInterval子类动作有:
p>
p>简单的:
p>CCMoveTo:移动到、CCMoveBy:按……移动
p>CCJumpTo:跳跃到、CCJumpBy:按……跳跃
p>CCBezierTo:贝兹移动到、CCBezierBy:按……贝兹移动
p>CCRotateTo:旋转到、CCRotateBy:按……旋转
p>CCScaleTo:缩放到、CCScaleBy:按……缩放
p>CCSkewTo:切变到、CCSkewBy:按……切变
p>CCTintTo:颜色渐变到、CCTintBy:按……颜色渐变
p>CCFadeIn:从无到有,也叫淡入、CCFadeOut:从有到无,也叫淡出、CCFadeTo:改变不透明度到某个值
p>CCBlink:闪耀
p>CCDelayTime:延时
p>
p>复杂的:
p>CCAnimate:帧动画,这个我们在第四节讲过,关于动画的问题不是一句两句就能说完,以后会慢慢展开
p>CCGridAction家族:网格动画
p>包装器:CCRepeat:重复执行几次、CCRepeatForever:永远执行、CCSequence:按序列执行、CCSpawn:同时执行、CCActionEase家族:补间动画
p>
p>
p>第二部分:简单的持续动作
p>
p>这些动作都非常简单,和立即动作的区别只是增加了一个执行时间而已。但还有一些要注意的地方:
p>
p>1.旋转动作顺时针是正方向
p>2.关于贝兹曲线
p>贝兹曲线的描述结构体如下:
p>/** @typedef bezier configuration structure
p> */
p>typedef struct _ccBezierConfig {
p> //! end position of the bezier
p> CCPoint endPosition;
p> //! Bezier control point 1
p> CCPoint controlPoint_1;
p> //! Bezier control point 2
p> CCPoint controlPoint_2;
p>} ccBezierConfig;
p>
p>如果执行节点是this的话,那么对应个点的位置如图。
p>
p>注意,当使用CCBezierTo时,ccBezierConfig的点都是绝对坐标点。但如果使用CCBezierBy,ccBezierConfig的点都是相对坐标点。这点要谨记。
p>
p>
p>第三部分:一些包装器
p>
p>这些动作单独无法起作用,需要包装其他动作类才行。他们的作用是对于动作的执行,增加一些变化。非常类似于装饰者模式。
p>
p>1.CCRepeat:用于重复执行几次动作,times表示执行次数
p>static CCRepeat * CCRepeat::actionWithAction (CCFiniteTimeAction *pAction, unsigned int times)
p>使用举例:在我的炸弹人例子中,用到如下写法,我播放一个炸弹动画若干次,然后启动爆炸的相关代码。
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>