Difference between revisions of "SceneManager:changeScene"

From GiderosMobile
m
(added example with data)
Line 14: Line 14:
 
'''easing''' (constant) easing type<br/>
 
'''easing''' (constant) easing type<br/>
  
=== Example ===
+
=== Examples ===
 +
'''Simple example'''
 
<source lang="lua">
 
<source lang="lua">
 
scenemanager:changeScene("level1", 2, SceneManager.moveFromRight, easing.outBack)
 
scenemanager:changeScene("level1", 2, SceneManager.moveFromRight, easing.outBack)
 +
</source>
 +
 +
'''Change scene with extra parameters'''
 +
<source 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>
 
</source>
  
 
{{SceneManager}}
 
{{SceneManager}}

Revision as of 04:08, 5 May 2022

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