cocos2d-x for wp之精灵动作——Actions

 

CCFiniteTimeAction:有限次动作执行类,就是按时间顺序执行一系列动作,执行完后动作结束;这里我们就是学习这个类

从图中,我们可以看出动作主要分为两大类:CCActionInstanse(瞬时动作的基类)和CCActionInterval(延时动作的基类)

 CCActionInstanse(瞬时动作的基类)

CCCallFunc :执行函数   CCFlipX/Y:  X/Y翻转          CCHide :隐藏

CCPlace : 设置位置       CCReuseGrid :重用网格     CCShow :显示

CCStopGrid :停止网格   CCToggleVisibility : 可见切换

CCActionInterval(延时动作的基类)我们用的最多的就是延时动作。CCActionInterval的子类有很多,可以通过cocos2d-x自带的tests例子来学习。

主要有这些动作:

CCMoveTo/CCMoveBy :移动     CCScaleTo/CCScaleBy:缩放    CCRotateTO/CCRotateBy:旋转 

CCSkewTo/CCSkewBy :扭曲     CCJumpTo/CCJumpBy :跳跃   CCBezierTo/CCBezierBy :贝塞尔曲线

CCBink :闪烁                          CCFadeIn/CCFadeOut :淡入淡出  CCTintTo/CCTintBy :染色

CCSpawn :同步                       CCRepeat/CCRepeatForever :有/无限次重复

CCDelayTime:延迟

下面是一个例子:grossini是一个精灵

CCActionInterval actionBy = CCJumpBy.actionWithDuration(2, new CCPoint(100, 100), 50, 4);
CCFiniteTimeAction actionByBack = actionBy.reverse();

grossini.runAction(CCSequence.actions(actionBy, actionByBack));

 

而一般我们都可以这样写,将几个动作一起组合在一起来实现精灵的动作。

CCAction action = CCSequence.actions(
CCSpawn.actions(CCAnimate.actionWithAnimation(animation, false),
CCMoveBy.actionWithDuration(0.28f, position),
CCCallFuncND.actionWithTarget(this, onWalkDone, tag))
);
grossini.runAction(action);

CCSequence 是动作序列,把若干个动作按顺序组合在一起,然后依次执行。 

CCSpawn 是将若干个动作组合在一起,同时执行它们(并行执行),执行时间以最长的那个动作为准。

参数是CCFiniteTimeAction[] actions一个动作数组,比如说CCMoveBy、CCSkewBy、CCScaleBy等动作数组。一般在CCSpawn的最后一个动作放一个CCCallFunc,放一个回调函数(这里是onWalkDone)作为动作执行完后的处理(比如说:显示信息、人物面向等)。

 

posted @ 2013-04-07 22:56  Dieaz5  阅读(1026)  评论(0编辑  收藏  举报