Functions | |
---|---|
transition.newEasing(action, easingName, more) | |
為圖象創造效果 | |
transition.execute(target, action, args) | |
履行1個動作效果 | |
transition.rotateTo(target, args) | |
將顯示對象旋轉到指定角度,并返回 CCAction 動作對象。 | |
transition.moveTo(target, args) | |
將顯示對象移動到指定位置,并返回 CCAction 動作對象。 | |
transition.fadeTo(target, args) | |
將顯示對象的透明度改變成指定值,并返回 CCAction 動作對象。 | |
transition.scaleTo(target, args) | |
將顯示對象縮放到指定比例,并返回 CCAction 動作對象。 | |
transition.sequence(actions) | |
創建1個動作序列對象。 | |
transition.playAnimationOnce(target, animation, removeWhenFinished, onComplete, delay) | |
在顯示對象上播放1次動畫,并返回 CCAction 動作對象。 |
transition.newEasing(action, easingName, more)
為圖象創造效果
transition.execute(target, action, args)
履行1個動作效果
-- 等待 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() 是1個強大的工具,可以為本來單1的動作添加各種附加特性。
transition.execute() 的參數表格支持以下參數:
transition.execute() 支持的緩動效果:
transition.rotateTo(target, args)
將顯示對象旋轉到指定角度,并返回 CCAction 動作對象。
-- 耗時 0.5 秒將 sprite 旋轉到 180 度
transition.rotateTo(sprite, {rotate = 180, time = 0.5})
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})
transition.fadeTo(target, args)
將顯示對象的透明度改變成指定值,并返回 CCAction 動作對象。
-- 不管顯示對象當前的透明度是多少,終究設置為 128
transition.fadeTo(sprite, {opacity = 128, time = 1.5})
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})
transition.sequence(actions)
創建1個動作序列對象。
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)
transition.playAnimationOnce(target, animation, removeWhenFinished, onComplete, delay)
在顯示對象上播放1次動畫,并返回 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 對象。例如1個爆炸效果:
local frames = display.newFrames("Boom%04d.png", 1, 8)
local boom = display.newSprite(frames[1])
-- playAnimationOnce() 第2個參數為 true 表示動畫播放完后刪除 boom 這個 CCSprite 對象
-- 這樣爆炸動畫播放終了,就自動清算了不需要的顯示對象
boom:playAnimationOnce(display.newAnimation(frames, 0.3/ 8), true)
另外,playAnimationOnce() 還允許在動畫播放完成后履行1個指定的函數,和播放動畫前等待1段時間。公道應用這些功能,可以大大簡化我們的游戲代碼。