Difference between revisions of "SceneManager:changeScene"

From GiderosMobile
(added example with data)
m (Text replacement - "<source" to "<syntaxhighlight")
Line 4: Line 4:
 
=== Description ===
 
=== Description ===
 
Transitions between two scenes.
 
Transitions between two scenes.
<source lang="lua">
+
<syntaxhighlight lang="lua">
 
SceneManager:changeScene(scene, duration, transition, easing)
 
SceneManager:changeScene(scene, duration, transition, easing)
 
</source>
 
</source>
Line 16: Line 16:
 
=== Examples ===
 
=== Examples ===
 
'''Simple example'''
 
'''Simple example'''
<source lang="lua">
+
<syntaxhighlight lang="lua">
 
scenemanager:changeScene("level1", 2, SceneManager.moveFromRight, easing.outBack)
 
scenemanager:changeScene("level1", 2, SceneManager.moveFromRight, easing.outBack)
 
</source>
 
</source>
  
 
'''Change scene with extra parameters'''
 
'''Change scene with extra parameters'''
<source lang="lua">
+
<syntaxhighlight lang="lua">
 
-- initialise scene manager
 
-- initialise scene manager
 
local sceneManager = SceneManager.new {
 
local sceneManager = SceneManager.new {

Revision as of 15:30, 13 July 2023

Available since: Gideros 2020.2
Class: SceneManager

Description

Transitions between two scenes. <syntaxhighlight lang="lua"> SceneManager:changeScene(scene, duration, transition, easing) </source>

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 <syntaxhighlight lang="lua"> scenemanager:changeScene("level1", 2, SceneManager.moveFromRight, easing.outBack) </source>

Change scene with extra parameters <syntaxhighlight lang="lua"> -- 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 </source>