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)
</source>
+
</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)
</source>
+
</syntaxhighlight>
  
 
'''Change scene with extra parameters'''
 
'''Change scene with extra parameters'''
Line 69: Line 69:
 
-- ...
 
-- ...
 
end
 
end
</source>
+
</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