lua 动画

一、延时概念

需要一定时间才能完成的动作、所以几乎所有的延时动作都使用执行时间作为参数、延时动作的共同基类是CCActionInstant类
cocos2d-x提供以下延时动作:

CCMoveTo:移动到、CCMoveBy:移动
CCRotateTo:旋转到、CCRotateBy:旋转
CCScaleTo:缩放到、CCScaleBy:缩放
CCSkewTo:切变到、CCSkewBy:切变
CCTintTo:颜色渐变到、CCTintBy:颜色渐变
CCFadeIn: 淡入、CCFadeOut: 淡出CCFadeTo:改变不透明度到
CCBlink:闪耀 设置闪烁次数
CCJumpTo:跳跃到、CCJumpBy:跳跃 设置跳跃高度和次数
CCBezierTo:贝塞尔曲线到、CCBezierBy:贝塞尔曲线

二、一些修饰动作类

1、CCRepeat:重复执行几次

local repeatAction = CCRepeat:actionWithAction(CCSequence:actionsWithArray(actions), 5)

2、CCRepeatForever:永久执行

3、CCSequence:按序列执行

local actions = CCArray:array()
actions:addObject(CCFadeOut:actionWithDuration(1))
actions:addObject(CCFadeIn:actionWithDuration(1))
sprite:runAction(CCRepeatForever:actionWithAction(CCSequence:actionsWithArray(actions)))

4、CCSpawn:同时执行

同步执行最后完成的时间由基本动作中用时最大者决定
action1 = CCMoveTo:actionWithDuration(2, ccp(50, 50))
action2 = CCRotateTo:actionWithDuration(2, 180)
action3 = CCScaleTo:actionWithDuration(1, 4)
action4 = CCScaleBy:actionWithDuration(1, 0)
sequence = CCSequence:actions(action3, action4)
sprite:runAction(CCSpawn:actions(action1, action2, sequence))

5、CCReverseTime 反动作

形成一种循环、CCxxxTo类通常不支持反动作,而CCXxxxBy类通常支持
moveTo = CCMoveTo:actionWithDuration(2, ccp(50, 50))
sequence = CCSequence:actions(moveTo,CCReverseTime:actionWithAction(moveTo))

6、CCAnimate 动画类

local action = CCAnimate:actionWithAnimation(animation)
sprite:runAction(CCRepeat:actionWithAction(action, 10))

7、CCDelayTime 延时等待类

action1 = CCMoveBy:actionWithDuration(1.2, ccp(200, 200))
action2 = CCMoveBy:actionWithDuration(1.2, ccp(200, 200))
sprite->runAction(CCSequence:actions(action1, CCDelayTime:actionWithDuration(1),action2))

8、CCProgressFromTo与CCProgressTo 进度动作

进度动作的执行节点为CCProgressTimer、而不是我们常用的CCSprite
--时间 百分比
to1 = CCProgressTo::actionWithDuration(2, 100);         
leftToRight = CCProgressTimer:progressWithFile( “123.png”)
leftToRight:setScale(0.95)
leftToRight:setAnchorPoint(CCPointMake(0.5, 0.5))
leftToRight:setPosition(PT(WINSIZE.width/2,60))
--顺时针、逆时针、左、右、上、下(枚举 0 1 2...)
leftToRight:setType(Type)
leftToRight->runAction( CCRepeatForever::actionWithAction(to1))

9、CCGridAction 网格动作类集

网格动作,是一种特殊的变换效果、类似于特效、可以实现全屏幕的,翻转,抖动,震荡,水波纹等。
CCGridAction是所有网格动作的基类、他有两个派生类、
CCTiledGrid3DAction:基于Tiled的网格动作、CCGrid3DAction:普通网格动作

三、补间动画(速度变化)

基本动作和组合动作实现了针对精灵的各种运动和动画效果、但它们的速度通常是恒定不变的
通过CCActionEase类系和CCSpeed类、我们可以很方便地改变精灵执行动作的快慢
CCEaseIn - 由慢至快(速度线性变化)
CCEaseOut - 由快至慢
CCEaseInOut - 由慢至快再由快至慢
CCEaseSineIn - 由慢至快(速度正弦变化)
CCEaseSineOut - 由快至慢
CCEaseSineInOut - 由慢至快再由快至慢
CCEaseExponentialIn - 由慢至极快(速度指数级变化)
CCEaseExponentialOut - 由极快至慢
CCEaseExponentialInOut - 由慢至极快再由极快至慢
CCSpeed - 人工设定速度,还可通过setSpeed不断调整

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值