diff options
author | perivesta <> | 2023-07-08 15:53:37 +0200 |
---|---|---|
committer | perivesta <> | 2023-07-08 15:53:37 +0200 |
commit | 9573d3ae4170f43f7f65224a16db7ad161a11e28 (patch) | |
tree | aca31f8254e6e2876ade6472febf8ad003bfea18 /Scripts/game.gd | |
parent | bf17c8a97b77cdb783a2751e7ee4a90843a00f06 (diff) | |
download | 2023-9573d3ae4170f43f7f65224a16db7ad161a11e28.tar.gz 2023-9573d3ae4170f43f7f65224a16db7ad161a11e28.tar.bz2 2023-9573d3ae4170f43f7f65224a16db7ad161a11e28.zip |
add main menu, pause menu, basic level
Diffstat (limited to '')
-rw-r--r-- | Scripts/game.gd | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/Scripts/game.gd b/Scripts/game.gd new file mode 100644 index 0000000..bacb709 --- /dev/null +++ b/Scripts/game.gd @@ -0,0 +1,104 @@ +extends Node2D + +const NUM_LEVELS = 3 + +# level control +var current_level_id = 0 +var levels = [] +var post_game = false + +var scenes = [ +# preload("res://Nodes/levels/level1/level1.tscn"), +# preload("res://Nodes/levels/level2/level2.tscn") + preload("res://Nodes/Level_test.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"): + close_scoreboard() + get_tree().paused = true + $PausePopup.show() + Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE) + + +func _on_QuitButton_pressed(): + get_tree().quit() + + +func _on_ResumeButton_pressed(): + print('aaaa') + $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(): + open_scoreboard() +# evaluate_player(current_strokes, PAR[current_level_id]) + $BGMPLayer.stream_paused = true + $JinglePlayer.play() + post_game = true + + +func open_scoreboard(): +# strokes_per_level[current_level_id] = current_strokes +# $Scoreboard.update_values(strokes_per_level, PAR) +# $Scoreboard.show() + pass + + +func close_scoreboard(): +# $Scoreboard.hide() + pass + + +func is_post_game(): + return post_game + + +func next_level(): + post_game = false + current_level_id += 1 + + if current_level_id >= NUM_LEVELS: + get_tree().change_scene("res://scenes/levels/MainMenu.tscn") + return + + load_scene_by_index(current_level_id) + close_scoreboard() + $Evaluation.hide() + + $BGMPLayer.stream_paused = false + $JinglePlayer.stop() + + +func evaluate_player(strokes, par): + $Evaluation/EvaluationLabel.text = "%d Seconds" % 42 + $Evaluation.show() + + +func _on_JinglePlayer_finished(): + $BGMPLayer.stream_paused = false + + +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) |