CCAction动作库
对于一个游戏来说,动作是非常重要的,好的动作可以使游戏的可玩性大大提高,在Cocos2d引擎中有一个动作类,CCAction是动作类的基类。
CCAction的子类:
CCFiniteTimeAction(受时间限制的动作)、CCFollow(不受时间限制的动作)、CCRepeatForever、CCSpeed。
CCFiniteTimeAction的子类:
CCInstantAction(瞬时动作)、CCIntervalAction(延时动作)。
CCInstantAction的子类:
CCHide(隐藏):CCHide hide = CCHide.action();
CCShow(显示):CCShow show = CCShow.action();
CCIntervalAction的子类:
位置变动:移动move、跳跃jump、贝塞尔曲线运动bezier(抛物线)、渐快EaseIn、渐慢EaseOut、先渐快后渐慢、特效,先缓冲再加速、正弦曲线速度变化。
定点变动:缩放scale、旋转rotate、颜色渐变动作tint、闪烁blink、播放序列帧。
Cocos2d提供的基本延时类动作都提供了To和By的方法,By方法有reverse()方法,而To方法没有。常用的有:
CCMoveBy/CCMoveTo、CCScaleBy/CCScaleTo、CCRotateBy/CCRotateTo、CCJumpBy/CCJumpTo、CCBezierBy/CCBezierTo、CCFadeBy/CCFadeIn/CCFadeOut。
MoveTo(移动到):CCMoveTo moveTo = CCMoveTo.action(t, pos);t是移动所用的时间,单位s,pos是移动的目标坐标。
精灵执行动作:sprite.runAction(CCAction action);
MoveBy(移动多少):CCMoveBy moveBy = CCMoveBy.action(t,pos);
MoveBy有reverse()方法,即:moveBy.reverse();moveBy的反向移动。
CCSequence:将动作串联起来。CCSequence sequence = CCSequence.actions(action1, actions);
JumpTo:CCJumpTo jumpTo = CCJumpTo.action(time, pos, height, jumps);time跳跃所用的时间,pos目标坐标,height跳跃过程中的最高点,jumps几次跳到目标点。
BezierTo:CCBezierTo bezierTo = CCBezierTo.action(t, c);t时间,c抛物线的参数配置信息。c的获得:
CCBezierConfig c = new CCBezierConfig();
c.controlPoint_1:起始点、c.controlPoint_2:抛物线的最高点、c.endPosition:抛物线的终点。
CCEaseIn:CCEaseIn easeIn = CCEaseIn.action(action, rate);action要加速的动作,rate加速度。
CCDelayTime(延迟):CCDelayTime delayTime = CCDelayTime.action(t);t延迟时间。在动作之间加一个间歇时间。
CCScaleTo:CCScaleTo scaleTo = CCScaleTo.action(t, s);t是时间,s是缩放比例。
CCRotateBy:CCRotateBy rotateBy = CCRotateBy.action(t, a);t是时间,a是旋转的角度,单位°。
旋转By和To的区别:to是以最便捷的方式旋转到指定的角度,如旋转300度,用to来实现的话会逆时针旋转60度。另外,旋转是绕着锚点完成的。
CCTintBy:CCTintBy tintBy = CCTintBy.action(t, c);t是时间,c是RGB颜色值的变动(0--255)。参数c的获得:
ccColor3B c = ccColor3B.ccc3(r, g, b);
CCBlink:CCBlink blink = CCBlink.action(t, b);t是执行时间,b是在t时间内闪烁的次数
CCSpawn(并发动作):CCSpawn spawn = CCSpawn.actions(action1, params);多个动作同时执行。
CCRepeatForever:反复执行动画
CCRepeatForever repeatForever = CCRepeatForever.action(action);
附加:
CCLabel:文字展示,是CCSprite的孩子。
CCLabel label = CCLabel.makeLabel(string, fontname, fontsize);string是文字内容,fontname是字体名字,字体放到assets文件夹下,fontsize是文字大小。
label.setColor(ccColor3B.ccc3(r, g, b));