Difference between revisions of "SceneManager:changeScene"
From GiderosMobile
m (Text replacement - "<source" to "<syntaxhighlight") |
m (Text replacement - "</source>" to "</syntaxhighlight>") |
||
Line 6: | Line 6: | ||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
SceneManager:changeScene(scene, duration, transition, easing) | SceneManager:changeScene(scene, duration, transition, easing) | ||
− | </ | + | </syntaxhighlight> |
=== Values === | === Values === | ||
Line 18: | Line 18: | ||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
scenemanager:changeScene("level1", 2, SceneManager.moveFromRight, easing.outBack) | scenemanager:changeScene("level1", 2, SceneManager.moveFromRight, easing.outBack) | ||
− | </ | + | </syntaxhighlight> |
'''Change scene with extra parameters''' | '''Change scene with extra parameters''' | ||
Line 69: | Line 69: | ||
-- ... | -- ... | ||
end | end | ||
− | </ | + | </syntaxhighlight> |
{{SceneManager}} | {{SceneManager}} |
Revision as of 14:32, 13 July 2023
Available since: Gideros 2020.2
Class: SceneManager
Description
Transitions between two scenes.
SceneManager:changeScene(scene, duration, transition, easing)
Values
scene (string) the name of the scene to transition to
duration (number) transition duration in seconds
transition (constant) transition type
easing (constant) easing type
Examples
Simple example
scenemanager:changeScene("level1", 2, SceneManager.moveFromRight, easing.outBack)
Change scene with extra parameters
-- initialise scene manager
local sceneManager = SceneManager.new {
['blankscene'] = BlankScene,
['cutscenescene'] = CutsceneScene,
}
stage:addChild(sceneManager)
-- load font
local fontName = 'consolas18'
local fontText = string.format('font/%s.txt', fontName)
local fontImage = string.format('font/%s.png', fontName)
local smallFont = Font.new(fontText, fontImage, true)
-- initialise gamestate
local gamestate = {
cutsceneId = 1,
}
-- begin demo
sceneManager:changeScene('blankscene')
sceneManager:changeScene('cutscenescene', 1, SceneManager.fade, easing.linear,
{
userData = {
sceneManager = sceneManager,
gamestate = gamestate,
font = smallFont,
},
}
)
-- then in cutscenescene class
CutsceneScene = Core.class(Sprite)
function CutsceneScene:init(params)
-- copy existing systems and objects
for k,v in pairs(params) do
self[k] = v
end
-- load cutscene
local gamestate = self.gamestate
local cutsceneId = gamestate.cutsceneId
-- initialise name text field
local nameText = TextField.new(self.font, ' ')
-- ...
end