Main scene
Delete the extra nodes you added to your temporary Main.tscn
(the Player
instance and the test StaticBody2D
). This scene will now be responsible for loading the current level. Before it can do that, however, you need an Autoload script to track the game state: variables such as current_level
and other data that needs to be carried from scene to scene.
Add a new script called GameState.gd
in the Script editor and add the following code:
extends Node var num_levels = 2 var current_level = 1 var game_scene = 'res://Main.tscn' var title_screen = 'res://ui/TitleScreen.tscn' func restart(): get_tree().change_scene(title_screen) func next_level(): current_level += 1 if current_level <= num_levels: get_tree().reload_current_scene()
Note that you should set num_levels
to the number of levels you've made in the levels
folder. Make sure to name them consistently (Level01.tscn
, Level02.tscn
, and so on) and then you can automatically load the next one in the sequence...