Basically what im trying to do here is when time runs out player goes to the gameover screen. Player has a choice to retry level by clicking a button. If player decides to retry then level_1 gets reset.
Now this works but only once. Player clicks the restart button and level 1 resets perfectly fine however if they run out of time again and go to the game over screen and click the retry button again i get a error that tells me that my variables are not getting loaded on Level_1.
I don’t understand why this only works once? Any help would be greatly appreciated.
Level_1.lua
local storyboard = require( "storyboard" ) local scene = storyboard.newScene() local centerXcord = display.contentCenterX --Center X cord local centerYcord = display.contentCenterY --Center Y cord local timeLimit = 5 local function timerDown() timeLimit = timeLimit-1 timeLeft.text = timeLimit if(timeLimit==0)then storyboard.gotoScene( "scenes.GameOver", "fade", 800 ) end end tmr = timer.performWithDelay(1000,timerDown,timeLimit) function scene:createScene( event ) local screenGroup = self.view timeLeft = display.newText(timeLimit, centerXcord, 0, native.systemFontBold, 64) timeLeft:setTextColor(255,0,0) screenGroup:insert( timeLeft ) end function scene:destroyScene( event ) print( "((destroying scene 1's view))" ) end scene:addEventListener( "createScene", scene ) scene:addEventListener( "destroyScene", scene ) return scene
GameOver.lua
local storyboard = require( "storyboard" ) local scene = storyboard.newScene() local function retry( target ) storyboard.removeScene( "levels.Level\_1" ) storyboard.gotoScene( "levels.Level\_1", "fade", 800 ) end function scene:createScene( event ) local screenGroup = self.view levelSelect = display.newImage( "images/levelSelect.png" ) levelSelect.x = 220 levelSelect.y = 250 screenGroup:insert( levelSelect ) levelSelect.touch = retry end function scene:enterScene( event ) local screenGroup = self.view levelSelect:addEventListener( "touch", levelSelect ) end scene:addEventListener( "createScene", scene ) scene:addEventListener( "enterScene", scene ) return scene