CCAction动作库

本文介绍了Cocos2d引擎中的CCAction及其子类,包括CCFiniteTimeAction、CCInstantAction、CCIntervalAction等,详细讲解了各种动作的使用,如移动、旋转、缩放、颜色变化等,并举例说明了如何创建和执行这些动作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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));

压缩包中包含如下动作列表(共37个目录下500个BIP动作): 01 Sitting in chair and talking 坐在椅子上谈话(4 motions) 02 Sitting in chair and drinking 坐在椅子上饮水 (3 motions) 03 Sitting to standing 从座着到站立(7 motions) 04 Walk in, sit down 行走,坐下(23 motions) 05 Seated Conversations 坐着交谈(6 motions) 06 Walk and run cycles 走和跑圈(44 motions) 07 Transitions 转变-慢到快(4 motions) 08 Walking with Large Box 搬大箱子(4 motions) 09 Walking with limp 上坡(13 motions) 10 Walking with hands in pockets 提着袋子走路(21 motions) 11 Walking with cane 拄着拐杖行走(4 motions) 12 Walking with parasol 撑着阳伞(女)行走(10 motions) 13 Walks with umbrella 撑着雨伞行走(9 motions) 14 Character walks 行走特征(18 motions) 15 Character walks and runs 走和跑特征(34 motions) 16 Walk in, negotiate obstacle, walk out 行走,通过障碍(26 motions) 17 Carrying bags and weights 提着重物行走(49 motions) 18 Blind person 盲人(4 motions) 19 Drunken adults 醉酒-成人(9 motions) 20 Drunken teenagers 醉酒-孩子(8 motions) 21 Disabilities-Crutches 双手拐杖(22 motions) 22 Bunny Girl 可爱女郎(13 motions) 23 Walking and lying down 走路并躺下(6 motions) 24 Sweeping with broom 用扫帚清洗(11 motions) 25 Scrubbing Floor 擦地板(2 motions) 26 Various kneeling and bowing 各种跪和鞠躬(7 motions) 27 Ambient moves 四周移动(35 motions) 28 Picking Things Up 捡东西(9 motions) 29 Opening Doors 开门(16 motions) 30 Standing Conversations, Addresses 站着交谈(9 motions) 31 Office 办公室(3 motions) 32 Dancing 跳舞(6 motions) 33 Sport Moves 运动(15 motions) 34 Driving 驾驶(7 motions) 35 Manual Labor 手工劳动(17 motions) 36 Gym Characters 体育馆项目(12 motions) 37 Throwing and catching 抓和扔(10 motions)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值