extends Node2D # level control var current_level_id = 0 var levels = [] var post_game = false var scenes = [ preload("res://Levels/Tut01.tscn"), preload("res://Levels/Tut02.tscn"), preload("res://Levels/Tut03.tscn"), preload("res://Levels/Level1.tscn"), preload("res://Levels/Level2.tscn") ] # Called when the node enters the scene tree for the first time. func _ready(): # $JinglePlayer.stream.loop_mode = AudioStream.LOOP_DISABLED load_scene_by_index(0) # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta): if Input.is_action_just_pressed("ui_cancel"): get_tree().paused = true $CanvasLayer/PausePopup.show() Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE) func _on_QuitButton_pressed(): get_tree().quit() func _on_ResumeButton_pressed(): $CanvasLayer/PausePopup.hide() get_tree().paused = false Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE) func _on_MainMenuButton_pressed(): get_tree().paused = false get_tree().change_scene_to_file("res://Nodes/main_menu.tscn") func end_level(): # evaluate_player(current_strokes, PAR[current_level_id]) $BGMPLayer.stream_paused = true $JinglePlayer.play() post_game = true func next_level(): current_level_id += 1 if current_level_id >= scenes.size(): get_tree().change_scene_to_file("res://Nodes/main_menu.tscn") return load_scene_by_index(current_level_id) # $BGMPLayer.stream_paused = false # $JinglePlayer.stop() func load_scene_by_index(index): # clear level for n in $LoadedLevel.get_children(): $LoadedLevel.remove_child(n) n.queue_free() # add new level var instance = scenes[index].instantiate() $LoadedLevel.add_child(instance)