44 lines
1.2 KiB
Lua
44 lines
1.2 KiB
Lua
|
---
|
||
|
-- @submodule Noble.Transition
|
||
|
|
||
|
class("SlideOn", nil, Noble.Transition).extends(Noble.Transition)
|
||
|
local transition = Noble.Transition.SlideOn
|
||
|
transition.name = "Slide On"
|
||
|
|
||
|
-- Type
|
||
|
transition._type = Noble.Transition.Type.MIX
|
||
|
|
||
|
-- Overrides
|
||
|
transition._sequenceStartValue = 1
|
||
|
transition._sequenceCompleteValue = 0
|
||
|
transition._captureScreenshotsDuringTransition = true
|
||
|
|
||
|
--- The next scene slides on the screen, covering up the previous scene.
|
||
|
-- @table Noble.Transition.SlideOn.defaultProperties
|
||
|
-- @tparam[opt=Ease.outInQuad] Ease ease
|
||
|
-- @number[opt=0] x
|
||
|
-- @number[opt=0] y
|
||
|
-- @number[opt=0] rotation
|
||
|
transition.defaultProperties = {
|
||
|
ease = Ease.outQuart,
|
||
|
x = 0,
|
||
|
y = 0,
|
||
|
rotation = 0
|
||
|
}
|
||
|
|
||
|
function transition:setProperties(__arguments)
|
||
|
self.x = __arguments.x or self.defaultProperties.x
|
||
|
self.y = __arguments.y or self.defaultProperties.y
|
||
|
self.rotation = __arguments.rotation or self.defaultProperties.rotation
|
||
|
end
|
||
|
|
||
|
function transition:draw()
|
||
|
transition.super.draw(self)
|
||
|
local progress = self.sequence:get()
|
||
|
self.oldSceneScreenshot:draw(0,0)
|
||
|
self.newSceneScreenshot:drawRotated(
|
||
|
self.x * progress + 200,
|
||
|
self.y * progress + 120,
|
||
|
self.rotation * progress
|
||
|
)
|
||
|
end
|