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

若如初见. 提交于 2019-12-27 09:31:39

 

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)作为动作执行完后的处理(比如说:显示信息、人物面向等)。

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!