From d83d498d845dbdf8a7f1e58746fa0fd9847dbcbf Mon Sep 17 00:00:00 2001 From: Eduardo Date: Sat, 27 Jan 2024 00:52:03 +0100 Subject: [PATCH] Added settings and credits menus and linked with the main menu --- addons/scene_manager/scenes.gd | 2 +- menus/credits/Credits.gd | 9 ++ menus/credits/Credits.tscn | 148 ++++++++++++++++++++++++++ menus/main_menu/MainMenu.gd | 26 +++-- menus/main_menu/MainMenu.tscn | 4 +- menus/settings_menu/SettingsMenu.gd | 17 +++ menus/settings_menu/SettingsMenu.tscn | 126 ++++++++++++++++++++++ 7 files changed, 316 insertions(+), 16 deletions(-) create mode 100644 menus/credits/Credits.gd create mode 100644 menus/credits/Credits.tscn create mode 100644 menus/settings_menu/SettingsMenu.gd create mode 100644 menus/settings_menu/SettingsMenu.tscn diff --git a/addons/scene_manager/scenes.gd b/addons/scene_manager/scenes.gd index b6ebcd3..0ecd9b2 100644 --- a/addons/scene_manager/scenes.gd +++ b/addons/scene_manager/scenes.gd @@ -5,4 +5,4 @@ # extends Node -var scenes: Dictionary = {"MainMenu":{"sections":["Scenes"],"settings":{"All":{"subsection":"","visibility":true},"Scenes":{"subsection":"","visibility":true}},"value":"res://menus/main_menu/MainMenu.tscn"},"Player":{"sections":[],"settings":{"All":{"subsection":"","visibility":false}},"value":"res://player/Player.tscn"},"_ignore_list":["res://addons","res://assets","res://game_settings"],"_sections":["Scenes","Loading Scenes"],"test_debug_msg":{"sections":[],"settings":{"All":{"subsection":"","visibility":true}},"value":"res://examples/test/test.tscn"},"unicorn_map":{"sections":["Scenes"],"settings":{"All":{"subsection":"","visibility":true},"Scenes":{"subsection":"","visibility":true}},"value":"res://levels/unicorn_level/unicorn_map.tscn"}} +var scenes: Dictionary = {"Credits":{"sections":["Scenes"],"settings":{"All":{"subsection":"","visibility":true},"Scenes":{"subsection":"","visibility":true}},"value":"res://menus/credits/Credits.tscn"},"MainMenu":{"sections":["Scenes"],"settings":{"All":{"subsection":"","visibility":true},"Scenes":{"subsection":"","visibility":true}},"value":"res://menus/main_menu/MainMenu.tscn"},"Player":{"sections":[],"settings":{"All":{"subsection":"","visibility":false}},"value":"res://player/Player.tscn"},"SettingsMenu":{"sections":["Scenes"],"settings":{"All":{"subsection":"","visibility":true},"Scenes":{"subsection":"","visibility":true}},"value":"res://menus/settings_menu/SettingsMenu.tscn"},"_ignore_list":["res://addons","res://assets","res://game_settings"],"_sections":["Scenes","Loading Scenes"],"test_debug_msg":{"sections":[],"settings":{"All":{"subsection":"","visibility":true}},"value":"res://examples/test/test.tscn"},"unicorn_map":{"sections":["Scenes"],"settings":{"All":{"subsection":"","visibility":true},"Scenes":{"subsection":"","visibility":true}},"value":"res://levels/unicorn_level/unicorn_map.tscn"}} diff --git a/menus/credits/Credits.gd b/menus/credits/Credits.gd new file mode 100644 index 0000000..8d222c5 --- /dev/null +++ b/menus/credits/Credits.gd @@ -0,0 +1,9 @@ +extends Control + +@onready var fade_out_options = SceneManager.create_options() +@onready var fade_in_options = SceneManager.create_options() +@onready var general_options = SceneManager.create_general_options() + +func _input(event): + if event.is_action_pressed("ui_cancel"): + SceneManager.change_scene(SceneManager.pop_previous_scene(), fade_out_options, fade_in_options, general_options) diff --git a/menus/credits/Credits.tscn b/menus/credits/Credits.tscn new file mode 100644 index 0000000..a78d7ed --- /dev/null +++ b/menus/credits/Credits.tscn @@ -0,0 +1,148 @@ +[gd_scene load_steps=3 format=3 uid="uid://doxq110o1mugg"] + +[ext_resource type="Script" path="res://menus/credits/Credits.gd" id="1_sc8gn"] + +[sub_resource type="PlaceholderTexture2D" id="PlaceholderTexture2D_407gk"] + +[node name="Credits" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_sc8gn") + +[node name="ColorRect" type="ColorRect" parent="."] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +color = Color(0.0768358, 0.0768358, 0.0768358, 1) + +[node name="CenterContainer" type="CenterContainer" parent="."] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="MarginContainer" type="MarginContainer" parent="CenterContainer"] +layout_mode = 2 +theme_override_constants/margin_left = 32 +theme_override_constants/margin_top = 32 +theme_override_constants/margin_right = 32 +theme_override_constants/margin_bottom = 64 + +[node name="VBoxContainer" type="VBoxContainer" parent="CenterContainer/MarginContainer"] +layout_mode = 2 + +[node name="MarginContainer" type="MarginContainer" parent="CenterContainer/MarginContainer/VBoxContainer"] +layout_mode = 2 +theme_override_constants/margin_left = 16 +theme_override_constants/margin_top = 16 +theme_override_constants/margin_right = 16 +theme_override_constants/margin_bottom = 16 + +[node name="TextureRect" type="TextureRect" parent="CenterContainer/MarginContainer/VBoxContainer/MarginContainer"] +custom_minimum_size = Vector2(700, 100) +layout_mode = 2 +texture = SubResource("PlaceholderTexture2D_407gk") + +[node name="Label" type="Label" parent="CenterContainer/MarginContainer/VBoxContainer/MarginContainer"] +layout_mode = 2 +text = "credits" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="MarginContainer2" type="MarginContainer" parent="CenterContainer/MarginContainer/VBoxContainer"] +layout_mode = 2 +theme_override_constants/margin_left = 128 +theme_override_constants/margin_right = 128 +theme_override_constants/margin_bottom = 16 + +[node name="VBoxContainer" type="VBoxContainer" parent="CenterContainer/MarginContainer/VBoxContainer/MarginContainer2"] +layout_mode = 2 + +[node name="Label" type="Label" parent="CenterContainer/MarginContainer/VBoxContainer/MarginContainer2/VBoxContainer"] +layout_mode = 2 +text = "Concept Artist" +vertical_alignment = 1 + +[node name="Label2" type="Label" parent="CenterContainer/MarginContainer/VBoxContainer/MarginContainer2/VBoxContainer"] +layout_mode = 2 +text = "Powi +" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="Label3" type="Label" parent="CenterContainer/MarginContainer/VBoxContainer/MarginContainer2/VBoxContainer"] +layout_mode = 2 +text = "3D Artists" +vertical_alignment = 1 + +[node name="Label4" type="Label" parent="CenterContainer/MarginContainer/VBoxContainer/MarginContainer2/VBoxContainer"] +layout_mode = 2 +text = "Blacky & Paula" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="Label5" type="Label" parent="CenterContainer/MarginContainer/VBoxContainer/MarginContainer2/VBoxContainer"] +layout_mode = 2 +text = "2D Artists" +vertical_alignment = 1 + +[node name="Label6" type="Label" parent="CenterContainer/MarginContainer/VBoxContainer/MarginContainer2/VBoxContainer"] +layout_mode = 2 +text = "Blacky & Powi" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="Label7" type="Label" parent="CenterContainer/MarginContainer/VBoxContainer/MarginContainer2/VBoxContainer"] +layout_mode = 2 +text = "Dev Team +" +vertical_alignment = 1 + +[node name="Label8" type="Label" parent="CenterContainer/MarginContainer/VBoxContainer/MarginContainer2/VBoxContainer"] +layout_mode = 2 +text = "Esi +" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="Label9" type="Label" parent="CenterContainer/MarginContainer/VBoxContainer/MarginContainer2/VBoxContainer"] +layout_mode = 2 +text = "Supporting Roles" +vertical_alignment = 1 + +[node name="Label10" type="Label" parent="CenterContainer/MarginContainer/VBoxContainer/MarginContainer2/VBoxContainer"] +layout_mode = 2 +text = "El Anticarro" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="Label11" type="Label" parent="CenterContainer/MarginContainer/VBoxContainer/MarginContainer2/VBoxContainer"] +layout_mode = 2 +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="Label14" type="Label" parent="CenterContainer/MarginContainer/VBoxContainer/MarginContainer2/VBoxContainer"] +layout_mode = 2 +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="Label12" type="Label" parent="CenterContainer/MarginContainer/VBoxContainer/MarginContainer2/VBoxContainer"] +layout_mode = 2 +text = "A production by Back Pain Games" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="Label13" type="Label" parent="CenterContainer/MarginContainer/VBoxContainer/MarginContainer2/VBoxContainer"] +layout_mode = 2 +text = "backpain.fun" +horizontal_alignment = 1 +vertical_alignment = 1 diff --git a/menus/main_menu/MainMenu.gd b/menus/main_menu/MainMenu.gd index 86ac3ec..a93cf15 100644 --- a/menus/main_menu/MainMenu.gd +++ b/menus/main_menu/MainMenu.gd @@ -1,32 +1,30 @@ extends Control -@export var scene : String +@export var playBtnSscene : String +@export var settingsBtnScene : String +@export var creditsBtnScene : String +@onready var fade_out_options = SceneManager.create_options() +@onready var fade_in_options = SceneManager.create_options() +@onready var general_options = SceneManager.create_general_options() # Called when the node enters the scene tree for the first time. func _ready(): - SceneManager.validate_scene(scene) - - -# Called every frame. 'delta' is the elapsed time since the previous frame. -func _process(_delta): - pass + SceneManager.validate_scene(playBtnSscene) + SceneManager.validate_scene(settingsBtnScene) + SceneManager.validate_scene(creditsBtnScene) func _on_play_button_pressed(): - SceneManager.change_scene(scene, - SceneManager.create_options(), - SceneManager.create_options(), - SceneManager.create_general_options() - ) + SceneManager.change_scene(playBtnSscene, fade_out_options, fade_in_options, general_options) func _on_settings_button_pressed(): - pass # Replace with function body. + SceneManager.change_scene(settingsBtnScene, fade_out_options, fade_in_options, general_options) func _on_credits_button_pressed(): - pass # Replace with function body. + SceneManager.change_scene(creditsBtnScene, fade_out_options, fade_in_options, general_options) func _on_exit_button_pressed(): diff --git a/menus/main_menu/MainMenu.tscn b/menus/main_menu/MainMenu.tscn index 1f9a67b..20d70a4 100644 --- a/menus/main_menu/MainMenu.tscn +++ b/menus/main_menu/MainMenu.tscn @@ -12,7 +12,9 @@ anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 script = ExtResource("1_oo1tq") -scene = "unicorn_map" +playBtnSscene = "unicorn_map" +settingsBtnScene = "SettingsMenu" +creditsBtnScene = "Credits" [node name="BackgroundColorRect" type="ColorRect" parent="."] layout_mode = 1 diff --git a/menus/settings_menu/SettingsMenu.gd b/menus/settings_menu/SettingsMenu.gd new file mode 100644 index 0000000..cb917c5 --- /dev/null +++ b/menus/settings_menu/SettingsMenu.gd @@ -0,0 +1,17 @@ +extends Control + +@onready var fade_out_options = SceneManager.create_options() +@onready var fade_in_options = SceneManager.create_options() +@onready var general_options = SceneManager.create_general_options() + +func _input(event): + if event.is_action_pressed("ui_cancel"): + SceneManager.change_scene(SceneManager.pop_previous_scene(), fade_out_options, fade_in_options, general_options) + + +func _on_return_button_pressed(): + SceneManager.change_scene(SceneManager.pop_previous_scene(), fade_out_options, fade_in_options, general_options) + + +func _on_save_button_pressed(): + pass # Replace with function body. diff --git a/menus/settings_menu/SettingsMenu.tscn b/menus/settings_menu/SettingsMenu.tscn new file mode 100644 index 0000000..912ac8a --- /dev/null +++ b/menus/settings_menu/SettingsMenu.tscn @@ -0,0 +1,126 @@ +[gd_scene load_steps=3 format=3 uid="uid://dfnxldjl28361"] + +[ext_resource type="Script" path="res://menus/settings_menu/SettingsMenu.gd" id="1_vivoc"] + +[sub_resource type="PlaceholderTexture2D" id="PlaceholderTexture2D_i3sru"] + +[node name="SettingsMenu" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_vivoc") + +[node name="ColorRect" type="ColorRect" parent="."] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +color = Color(0.0785105, 0.188471, 0.230643, 1) + +[node name="CenterContainer" type="CenterContainer" parent="."] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="MarginContainer" type="MarginContainer" parent="CenterContainer"] +layout_mode = 2 +theme_override_constants/margin_left = 32 +theme_override_constants/margin_top = 32 +theme_override_constants/margin_right = 32 +theme_override_constants/margin_bottom = 64 + +[node name="VBoxContainer" type="VBoxContainer" parent="CenterContainer/MarginContainer"] +layout_mode = 2 + +[node name="MarginContainer" type="MarginContainer" parent="CenterContainer/MarginContainer/VBoxContainer"] +layout_mode = 2 +theme_override_constants/margin_left = 16 +theme_override_constants/margin_top = 16 +theme_override_constants/margin_right = 16 +theme_override_constants/margin_bottom = 16 + +[node name="TextureRect" type="TextureRect" parent="CenterContainer/MarginContainer/VBoxContainer/MarginContainer"] +custom_minimum_size = Vector2(700, 100) +layout_mode = 2 +texture = SubResource("PlaceholderTexture2D_i3sru") + +[node name="Label" type="Label" parent="CenterContainer/MarginContainer/VBoxContainer/MarginContainer"] +layout_mode = 2 +text = "Settings" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="MarginContainer2" type="MarginContainer" parent="CenterContainer/MarginContainer/VBoxContainer"] +layout_mode = 2 +theme_override_constants/margin_left = 16 +theme_override_constants/margin_top = 16 +theme_override_constants/margin_right = 16 +theme_override_constants/margin_bottom = 16 + +[node name="VBoxContainer" type="VBoxContainer" parent="CenterContainer/MarginContainer/VBoxContainer/MarginContainer2"] +layout_mode = 2 + +[node name="Label" type="Label" parent="CenterContainer/MarginContainer/VBoxContainer/MarginContainer2/VBoxContainer"] +layout_mode = 2 +text = "Opcion 1" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="Label2" type="Label" parent="CenterContainer/MarginContainer/VBoxContainer/MarginContainer2/VBoxContainer"] +layout_mode = 2 +text = "Opcion 2" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="Label3" type="Label" parent="CenterContainer/MarginContainer/VBoxContainer/MarginContainer2/VBoxContainer"] +layout_mode = 2 +text = "otra opcion mas" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="Label4" type="Label" parent="CenterContainer/MarginContainer/VBoxContainer/MarginContainer2/VBoxContainer"] +layout_mode = 2 +text = "esto esta a medias obviamente" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="Label5" type="Label" parent="CenterContainer/MarginContainer/VBoxContainer/MarginContainer2/VBoxContainer"] +layout_mode = 2 +text = "la ultima opcion" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="Label6" type="Label" parent="CenterContainer/MarginContainer/VBoxContainer/MarginContainer2/VBoxContainer"] +layout_mode = 2 +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="HBoxContainer" type="HBoxContainer" parent="CenterContainer/MarginContainer/VBoxContainer/MarginContainer2/VBoxContainer"] +layout_mode = 2 + +[node name="ReturnButton" type="Button" parent="CenterContainer/MarginContainer/VBoxContainer/MarginContainer2/VBoxContainer/HBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 3 +text = "Return" + +[node name="Label6" type="Label" parent="CenterContainer/MarginContainer/VBoxContainer/MarginContainer2/VBoxContainer/HBoxContainer"] +layout_mode = 2 +text = " " +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="SaveButton" type="Button" parent="CenterContainer/MarginContainer/VBoxContainer/MarginContainer2/VBoxContainer/HBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 3 +text = "Save" + +[connection signal="pressed" from="CenterContainer/MarginContainer/VBoxContainer/MarginContainer2/VBoxContainer/HBoxContainer/ReturnButton" to="." method="_on_return_button_pressed"] +[connection signal="pressed" from="CenterContainer/MarginContainer/VBoxContainer/MarginContainer2/VBoxContainer/HBoxContainer/SaveButton" to="." method="_on_save_button_pressed"] -- 2.30.2