I finished my game but I don’t know how to make the program restart from the beginning when it finish. any suggestions on how I could make the program restart?
Put all the code that initiates the game state in its own function, gameSetup
or whatever, and then call that. Better yet, build a simple state engine. So you might decide that the possible states your program can be in are:
-
levelSelect
(waiting for player to choose a level) -
game
(player is actually playing) - and
gameOver
(player is dead, and morosely staring at the “game over” screen, their high scores etc).
Then put all the corresponding code into sets of functions, like this:
game={} --an array to hold the functions
function game.init()
--setup a new game here
end
function game.draw()
--all your game drawing
end
function game.touched(touch)
--your game touch routine
end
Have the same with the other states, eg levelSelect.init()
, levelSelect.draw()
, levelSelect.touched()
Then, your main setup and draw loops have a state pointer:
function setup()
state = game --or levelSelect
state.init()
end
function draw()
state.draw()
end
function touched(touch)
state.touched(touch)
end
If you organise your code like this, starting a new game is as simple as calling game.init()
. You might do this, for instance, from the touched
routine of your gameOver
state:
function gameOver.touched(touch)
state = game
state.init()
end
Alternatively, you can use the restart()
function built in
true! i guess it depends on how quickly your code starts up, whether you load/ process assets, how much of a sense of continuity you want to keep between game cycles etc… I think it’s good practice though to have a built in game cycle restart, if only to practice modularising the code, separating game cycle specific setup from general setup etc. I noticed @Ignatz latest two blog posts were on this topic actually, @Codeabeginer you should look at the latest to posts on coolcodea