quick-cocos2d-x transition用法

Functions
transition.newEasing(action, easingName, more)
为图像创造效果
transition.execute(target, action, args)
执行一个动作效果
transition.rotateTo(target, args)
将显示对象旋转到指定角度,并返回 CCAction 动作对象。
transition.moveTo(target, args)
将显示对象移动到指定位置,并返回 CCAction 动作对象。
transition.fadeTo(target, args)
将显示对象的透明度改变为指定值,并返回 CCAction 动作对象。
transition.scaleTo(target, args)
将显示对象缩放到指定比例,并返回 CCAction 动作对象。
transition.sequence(actions)
创建一个动作序列对象。
transition.playAnimationOnce(target, animation, removeWhenFinished, onComplete, delay)
在显示对象上播放一次动画,并返回 CCAction 动作对象。

Functions

transition.newEasing()

transition.newEasing(action, easingName, more)

为图像创造效果

transition.execute()

transition.execute(target, action, args)

执行一个动作效果


-- 等待 1.0 后开始移动对象
-- 耗时 1.5 秒,将对象移动到屏幕中央
-- 移动使用 backout 缓动效果
-- 移动结束后执行函数,显示 move completed
transition.execute(sprite, CCMoveTo:create(1.5, CCPoint(display.cx, display.cy)), {
    delay = 1.0,
    easing = "backout",
    onComplete = function()
        print("move completed")
    end,
})

transition.execute() 是一个强大的工具,可以为原本单一的动作添加各种附加特性。

transition.execute() 的参数表格支持下列参数:

  • delay: 等待多长时间后开始执行动作
  • easing: 缓动效果的名字及可选的附加参数,效果名字不区分大小写
  • onComplete: 动作执行完成后要调用的函数
  • time: 执行动作需要的时间

transition.execute() 支持的缓动效果:

  • backIn
  • backInOut
  • backOut
  • bounce
  • bounceIn
  • bounceInOut
  • bounceOut
  • elastic, 附加参数默认为 0.3
  • elasticIn, 附加参数默认为 0.3
  • elasticInOut, 附加参数默认为 0.3
  • elasticOut, 附加参数默认为 0.3
  • exponentialIn, 附加参数默认为 1.0
  • exponentialInOut, 附加参数默认为 1.0
  • exponentialOut, 附加参数默认为 1.0
  • In, 附加参数默认为 1.0
  • InOut, 附加参数默认为 1.0
  • Out, 附加参数默认为 1.0
  • rateaction, 附加参数默认为 1.0
  • sineIn
  • sineInOut
  • sineOut
Parameters
  • CCNode target 显示对象
  • CCAction action 动作对象
  • table args 参数表格对象
Returns
  • mixed 结果

transition.rotateTo()

transition.rotateTo(target, args)

将显示对象旋转到指定角度,并返回 CCAction 动作对象。


-- 耗时 0.5 秒将 sprite 旋转到 180 度
transition.rotateTo(sprite, {rotate = 180, time = 0.5})

Parameters
  • CCNode target 显示对象
  • table args 参数表格对象
Returns
  • mixed 结果

transition.moveTo()

transition.moveTo(target, args)

将显示对象移动到指定位置,并返回 CCAction 动作对象。


-- 移动到屏幕中心
transition.moveTo(sprite, {x = display.cx, y = display.cy, time = 1.5})
-- 移动到屏幕左边,不改变 y
transition.moveTo(sprite, {x = display.left, time = 1.5})
-- 移动到屏幕底部,不改变 x
transition.moveTo(sprite, {y = display.bottom, time = 1.5})

Parameters
  • CCNode target 显示对象
  • table args 参数表格对象
Returns
  • mixed 结果

transition.fadeTo()

transition.fadeTo(target, args)

将显示对象的透明度改变为指定值,并返回 CCAction 动作对象。


-- 不管显示对象当前的透明度是多少,最终设置为 128
transition.fadeTo(sprite, {opacity = 128, time = 1.5})

Parameters
  • CCNode target 显示对象
  • table args 参数表格对象
Returns
  • mixed 结果

transition.scaleTo()

transition.scaleTo(target, args)

将显示对象缩放到指定比例,并返回 CCAction 动作对象。


-- 整体缩放为 50%
transition.scaleTo(sprite, {scale = 0.5, time = 1.5})
-- 单独水平缩放
transition.scaleTo(sprite, {scaleX = 0.5, time = 1.5})
-- 单独垂直缩放
transition.scaleTo(sprite, {scaleY = 0.5, time = 1.5})

Parameters
  • CCNode target 显示对象
  • table args 参数表格对象
Returns
  • mixed 结果

transition.sequence()

transition.sequence(actions)

创建一个动作序列对象。


local sequence = transition.sequence({
    CCMoveTo:create(0.5, CCPoint(display.cx, display.cy)),
    CCFadeOut:create(0.2),
    CCDelayTime:create(0.5),
    CCFadeIn:create(0.3),
})
sprite:runAction(sequence)

Parameters
  • table args 动作的表格对象
Returns
  • CCSequence 动作序列对象

transition.playAnimationOnce()

transition.playAnimationOnce(target, animation, removeWhenFinished, onComplete, delay)

在显示对象上播放一次动画,并返回 CCAction 动作对象。


local frames = display.newFrames("Walk%04d.png", 1, 20)
local animation = display.newAnimation(frames, 0.5 / 20) -- 0.5s play 20 frames
transition.playAnimationOnce(sprite, animation)

还可以用 CCSprite 对象的 playAnimationOnce() 方法来直接播放动画:


local frames = display.newFrames("Walk%04d.png", 1, 20)
local animation = display.newAnimation(frames, 0.5 / 20) -- 0.5s play 20 frames
sprite:playAnimationOnce(animation)

playAnimationOnce() 提供了丰富的功能,例如在动画播放完成后就删除用于播放动画的 CCSprite 对象。例如一个爆炸效果:


local frames = display.newFrames("Boom%04d.png", 1, 8)
local boom = display.newSprite(frames[1])

-- playAnimationOnce() 第二个参数为 true 表示动画播放完后删除 boom 这个 CCSprite 对象
-- 这样爆炸动画播放完毕,就自动清理了不需要的显示对象
boom:playAnimationOnce(display.newAnimation(frames, 0.3/ 8), true)

此外,playAnimationOnce() 还允许在动画播放完成后执行一个指定的函数,以及播放动画前等待一段时间。合理运用这些功能,可以大大简化我们的游戏代码。

Parameters
  • CCNode target 显示对象
  • CCNode animation 动作对象
  • boolean removeWhenFinished 播放完成后删除显示对象
  • function onComplete 播放完成后要执行的函数
  • number delay 播放前等待的时间
Returns
  • table 动作表格对象
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值