How To Restart Scenes In Corona SDK?
Solution 1
create a 'dummy scene' where u can storyboard.purgeScene("level20") under createScene() then create a function in enterScene() that u can storyboard.gotoScene("level20","flip"). make sure u storyboard.purgeScene ('dummy scene') in ''level'' 20. Your next question will be 'Do I need to create 20 dummy scenes?' No store a variable under storyboard.level = '20' than call it from the 'dummy scene'
Solution 2
Above seemed not work well, I got my solution with simple transition effect.
function scene:refresh(event)
local v = self.view
transition.to(v, {time=500, alpha=0.5, transition=easing.inExpo, onComplete=function(e)
self:destroyScene()
self:createScene()
storyboard.reloadScene()
transition.to(v, {time=500, alpha=1, transition=easing.outExpo})
end})
end
SoftwareDev
Updated on June 04, 2022Comments
-
SoftwareDev almost 2 years
Am using Corona's SDK storyboard API, in my app I want to let users "try again" the level. I though simply calling
storyboard.gotoScene("level20","flip")
where level20 is the current scene, after an event (taping the "try again" button) would work but the scene keeps all it's display objects in the same place instead of resetting like when I come from a different scene.
Is it possible to restart a scene from the same scene?
Thanks.
Edit:
Am using Corona's Version: 2.0.0, Build: 2011.704
Edit (possible fix):
I might have found the fix. From the docs in the "Scene Purging and Removal": when you go to a new scene the previous scene sticks around in memory for fast reloading, scene:createScene() removes this memory.
So the fix I found was to call
scene:createScene()
, it seems to work but if this is the wrong approach please let us know. Thanks.