首页 > 代码库 > quick-cocos2d-x transition用法

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 动作表格对象

quick-cocos2d-x transition用法