From 9573d3ae4170f43f7f65224a16db7ad161a11e28 Mon Sep 17 00:00:00 2001 From: perivesta <> Date: Sat, 8 Jul 2023 15:53:37 +0200 Subject: add main menu, pause menu, basic level --- Scripts/car_behaviour.gd | 2 - Scripts/game.gd | 104 +++++++++++++++++++++++++++++++++++++++++++++++ Scripts/main_menu.gd | 25 ++++++++++++ 3 files changed, 129 insertions(+), 2 deletions(-) create mode 100644 Scripts/game.gd create mode 100644 Scripts/main_menu.gd (limited to 'Scripts') diff --git a/Scripts/car_behaviour.gd b/Scripts/car_behaviour.gd index 0463dc1..03546d3 100644 --- a/Scripts/car_behaviour.gd +++ b/Scripts/car_behaviour.gd @@ -99,8 +99,6 @@ func own_movement(delta): var actual_speed = lerpf(velocity.length(), max_speed, acceleration) var actual_angle = lerp_angle(velocity.angle(), desired_velocity.angle(), steer_force) - print("lerped speed: ", actual_speed, " | lerped angle: ", actual_angle) - velocity = Vector2.from_angle(actual_angle) * actual_speed rotation = actual_angle 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) diff --git a/Scripts/main_menu.gd b/Scripts/main_menu.gd new file mode 100644 index 0000000..3bfe28e --- /dev/null +++ b/Scripts/main_menu.gd @@ -0,0 +1,25 @@ +extends Control + + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" + + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta): + pass + + +func _on_StartButton_pressed(): + get_tree().change_scene_to_file("res://Nodes/game.tscn") + + + +func _on_QuitButton_pressed(): + get_tree().quit() -- cgit