I added a constants file and replaced strings and repetitive thingys, changed some...
authorEduardo <[email protected]>
Sun, 5 May 2024 17:13:54 +0000 (19:13 +0200)
committerEduardo <[email protected]>
Sun, 5 May 2024 17:13:54 +0000 (19:13 +0200)
12 files changed:
CONSTANTS.gd [new file with mode: 0644]
project.godot
scenes/MainMenu.tscn [deleted file]
scenes/SplashScreen.tscn [deleted file]
scenes/base_level/BaseLevel.tscn [new file with mode: 0644]
scenes/base_level/base_level.gd [new file with mode: 0644]
scenes/main_menu.gd [deleted file]
scenes/main_menu/MainMenu.tscn [new file with mode: 0644]
scenes/main_menu/main_menu.gd [new file with mode: 0644]
scenes/splash_screen.gd [deleted file]
scenes/splash_screen/SplashScreen.tscn [new file with mode: 0644]
scenes/splash_screen/splash_screen.gd [new file with mode: 0644]

diff --git a/CONSTANTS.gd b/CONSTANTS.gd
new file mode 100644 (file)
index 0000000..94269f6
--- /dev/null
@@ -0,0 +1,14 @@
+extends Node
+
+# scenes
+const SplashScreen_path = "res://scenes/splash_screen/SplashScreen.tscn"
+const MainMenu_path = "res://scenes/main_menu/MainMenu.tscn"
+const Settings_path = "res://scenes/settings/Settings.tscn"
+const BaseLevel_path = "res://scenes/base_level/BaseLevel.tscn"
+
+# others
+const default_changeScene_config = { 
+                       "speed": 2,
+                       "pattern": "diagonal",
+                       "wait_time": 0
+                }
index f0a85a9e2ecabcaa82e87b242d2c3aeda7973164..3dcc7e469b16ead087eb05633af4b8ef2325e812 100644 (file)
@@ -12,7 +12,7 @@ config_version=5
 
 config/name="Routes & Roots"
 config/version="0.1"
-run/main_scene="res://scenes/SplashScreen.tscn"
+run/main_scene="res://scenes/splash_screen/SplashScreen.tscn"
 config/features=PackedStringArray("4.3", "Mobile")
 boot_splash/bg_color=Color(1, 0.894118, 0.796078, 1)
 boot_splash/show_image=false
@@ -23,12 +23,14 @@ config/icon="res://icon.svg"
 DebugMenu="*res://addons/debug_menu/debug_menu.tscn"
 SceneManager="*res://addons/scene_manager/SceneManager.tscn"
 Tracer="*res://addons/tracer/./tracer.gd"
+GGS="*res://addons/ggs/classes/global/ggs.tscn"
+Constants="*res://CONSTANTS.gd"
 
 [display]
 
 window/size/viewport_width=1920
 window/size/viewport_height=1080
-window/stretch/mode="viewport"
+window/stretch/mode="canvas_items"
 
 [editor]
 
@@ -37,17 +39,18 @@ version_control/autoload_on_startup=true
 
 [editor_plugins]
 
-enabled=PackedStringArray("res://addons/ColorPreview/plugin.cfg", "res://addons/debug_menu/plugin.cfg", "res://addons/health_bar_2d/plugin.cfg", "res://addons/label_font_auto_sizer/plugin.cfg", "res://addons/licenses/plugin.cfg", "res://addons/rich_text_label_ex/plugin.cfg", "res://addons/scene_manager/plugin.cfg", "res://addons/script-ide/plugin.cfg", "res://addons/script-tabs/plugin.cfg", "res://addons/tracer/plugin.cfg")
+enabled=PackedStringArray("res://addons/ColorPreview/plugin.cfg", "res://addons/debug_menu/plugin.cfg", "res://addons/ggs/plugin.cfg", "res://addons/health_bar_2d/plugin.cfg", "res://addons/label_font_auto_sizer/plugin.cfg", "res://addons/licenses/plugin.cfg", "res://addons/rich_text_label_ex/plugin.cfg", "res://addons/scene_manager/plugin.cfg", "res://addons/script-ide/plugin.cfg", "res://addons/script-tabs/plugin.cfg", "res://addons/tracer/plugin.cfg")
 
 [file_customization]
 
 folder_colors={
 "res://assets/": "red",
 "res://components/": "teal",
+"res://examples/": "yellow",
+"res://game_settings/": "gray",
 "res://scenes/": "blue"
 }
 
 [rendering]
 
-textures/canvas_textures/default_texture_filter=0
 renderer/rendering_method="mobile"
diff --git a/scenes/MainMenu.tscn b/scenes/MainMenu.tscn
deleted file mode 100644 (file)
index bce1597..0000000
+++ /dev/null
@@ -1,214 +0,0 @@
-[gd_scene load_steps=9 format=3 uid="uid://brlsxlpsaxahp"]
-
-[ext_resource type="Texture2D" uid="uid://b1hgu1e1abcgx" path="res://assets/title_screen_background.png" id="1_0ke3n"]
-[ext_resource type="Script" path="res://scenes/main_menu.gd" id="1_n2vcw"]
-[ext_resource type="Texture2D" uid="uid://cm6jp47f1d4cl" path="res://assets/ui-components/logo_routes&roots.png" id="2_1eb10"]
-[ext_resource type="PackedScene" uid="uid://c3uole0l14mxh" path="res://components/button/MainButton.tscn" id="4_pjqd4"]
-
-[sub_resource type="Animation" id="Animation_dyqmd"]
-length = 0.001
-tracks/0/type = "value"
-tracks/0/imported = false
-tracks/0/enabled = true
-tracks/0/path = NodePath(".:position")
-tracks/0/interp = 1
-tracks/0/loop_wrap = true
-tracks/0/keys = {
-"times": PackedFloat32Array(0),
-"transitions": PackedFloat32Array(1),
-"update": 0,
-"values": [Vector2(224, 56)]
-}
-tracks/1/type = "value"
-tracks/1/imported = false
-tracks/1/enabled = true
-tracks/1/path = NodePath("../StartButton:position")
-tracks/1/interp = 1
-tracks/1/loop_wrap = true
-tracks/1/keys = {
-"times": PackedFloat32Array(0),
-"transitions": PackedFloat32Array(1),
-"update": 0,
-"values": [Vector2(384, 640)]
-}
-tracks/2/type = "value"
-tracks/2/imported = false
-tracks/2/enabled = true
-tracks/2/path = NodePath("../ConfigButton:position")
-tracks/2/interp = 1
-tracks/2/loop_wrap = true
-tracks/2/keys = {
-"times": PackedFloat32Array(0),
-"transitions": PackedFloat32Array(1),
-"update": 0,
-"values": [Vector2(320, 776)]
-}
-tracks/3/type = "value"
-tracks/3/imported = false
-tracks/3/enabled = true
-tracks/3/path = NodePath("../ExitButton:position")
-tracks/3/interp = 1
-tracks/3/loop_wrap = true
-tracks/3/keys = {
-"times": PackedFloat32Array(0),
-"transitions": PackedFloat32Array(1),
-"update": 0,
-"values": [Vector2(256, 912)]
-}
-
-[sub_resource type="Animation" id="Animation_h7sqw"]
-resource_name = "logo_entrance"
-tracks/0/type = "value"
-tracks/0/imported = false
-tracks/0/enabled = true
-tracks/0/path = NodePath(".:position")
-tracks/0/interp = 1
-tracks/0/loop_wrap = true
-tracks/0/keys = {
-"times": PackedFloat32Array(0, 0.7),
-"transitions": PackedFloat32Array(1, 1),
-"update": 0,
-"values": [Vector2(248, 912), Vector2(248, 24)]
-}
-tracks/1/type = "value"
-tracks/1/imported = false
-tracks/1/enabled = true
-tracks/1/path = NodePath("../StartButton:position")
-tracks/1/interp = 1
-tracks/1/loop_wrap = true
-tracks/1/keys = {
-"times": PackedFloat32Array(0.5661, 0.7326),
-"transitions": PackedFloat32Array(1, 1),
-"update": 0,
-"values": [Vector2(248, 1104), Vector2(384, 640)]
-}
-tracks/2/type = "value"
-tracks/2/imported = false
-tracks/2/enabled = true
-tracks/2/path = NodePath("../ConfigButton:position")
-tracks/2/interp = 1
-tracks/2/loop_wrap = true
-tracks/2/keys = {
-"times": PackedFloat32Array(0.5661, 0.8658),
-"transitions": PackedFloat32Array(1, 1),
-"update": 0,
-"values": [Vector2(184, 1216), Vector2(320, 776)]
-}
-tracks/3/type = "value"
-tracks/3/imported = false
-tracks/3/enabled = true
-tracks/3/path = NodePath("../ExitButton:position")
-tracks/3/interp = 1
-tracks/3/loop_wrap = true
-tracks/3/keys = {
-"times": PackedFloat32Array(0.5661, 0.999),
-"transitions": PackedFloat32Array(1, 1),
-"update": 0,
-"values": [Vector2(120, 1336), Vector2(256, 912)]
-}
-
-[sub_resource type="Animation" id="Animation_410fw"]
-resource_name = "logo_bounce"
-length = 5.0
-loop_mode = 2
-tracks/0/type = "value"
-tracks/0/imported = false
-tracks/0/enabled = true
-tracks/0/path = NodePath(".:position")
-tracks/0/interp = 1
-tracks/0/loop_wrap = true
-tracks/0/keys = {
-"times": PackedFloat32Array(0, 4.995),
-"transitions": PackedFloat32Array(1, 1),
-"update": 0,
-"values": [Vector2(248, 24), Vector2(248, 72)]
-}
-
-[sub_resource type="AnimationLibrary" id="AnimationLibrary_b7mng"]
-_data = {
-"RESET": SubResource("Animation_dyqmd"),
-"entrance": SubResource("Animation_h7sqw"),
-"logo_bounce": SubResource("Animation_410fw")
-}
-
-[node name="MainMenu" 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_n2vcw")
-
-[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
-root_node = NodePath("../Logo")
-libraries = {
-"": SubResource("AnimationLibrary_b7mng")
-}
-autoplay = "entrance"
-
-[node name="Background" type="TextureRect" parent="."]
-layout_mode = 0
-scale = Vector2(0.5, 0.5)
-texture = ExtResource("1_0ke3n")
-
-[node name="Logo" type="TextureRect" parent="."]
-layout_mode = 0
-offset_left = 224.0
-offset_top = 56.0
-offset_right = 1740.0
-offset_bottom = 763.0
-scale = Vector2(0.5, 0.5)
-pivot_offset = Vector2(710, 364)
-texture = ExtResource("2_1eb10")
-
-[node name="StartButton" parent="." instance=ExtResource("4_pjqd4")]
-layout_mode = 0
-anchors_preset = 0
-anchor_left = 0.0
-anchor_top = 0.0
-anchor_right = 0.0
-anchor_bottom = 0.0
-offset_left = 384.0
-offset_top = 640.0
-offset_right = 1152.0
-offset_bottom = 880.0
-grow_horizontal = 1
-grow_vertical = 1
-scale = Vector2(0.5, 0.5)
-text = "Start"
-
-[node name="ConfigButton" parent="." instance=ExtResource("4_pjqd4")]
-layout_mode = 0
-anchors_preset = 0
-anchor_left = 0.0
-anchor_top = 0.0
-anchor_right = 0.0
-anchor_bottom = 0.0
-offset_left = 320.0
-offset_top = 776.0
-offset_right = 1088.0
-offset_bottom = 1016.0
-grow_horizontal = 1
-grow_vertical = 1
-scale = Vector2(0.5, 0.5)
-text = "Config"
-
-[node name="ExitButton" parent="." instance=ExtResource("4_pjqd4")]
-layout_mode = 0
-anchors_preset = 0
-anchor_left = 0.0
-anchor_top = 0.0
-anchor_right = 0.0
-anchor_bottom = 0.0
-offset_left = 256.0
-offset_top = 912.0
-offset_right = 1024.0
-offset_bottom = 1152.0
-grow_horizontal = 1
-grow_vertical = 1
-scale = Vector2(0.5, 0.5)
-text = "Exit"
-
-[connection signal="animation_finished" from="AnimationPlayer" to="." method="_on_animation_player_animation_finished"]
-[connection signal="pressed" from="ExitButton" to="." method="_on_exit_button_pressed"]
diff --git a/scenes/SplashScreen.tscn b/scenes/SplashScreen.tscn
deleted file mode 100644 (file)
index d31cd45..0000000
+++ /dev/null
@@ -1,185 +0,0 @@
-[gd_scene load_steps=9 format=3 uid="uid://cy24adufhvmvm"]
-
-[ext_resource type="Texture2D" uid="uid://b3u2jhhvyo8ss" path="res://assets/vertical_divisor.png" id="1_2v5nx"]
-[ext_resource type="Script" path="res://scenes/splash_screen.gd" id="1_8mb83"]
-[ext_resource type="Texture2D" uid="uid://c2hclus3idni7" path="res://assets/logo_made_with_godot.png" id="2_6njfd"]
-[ext_resource type="Texture2D" uid="uid://bwwrm5h5uvljd" path="res://assets/logo_backpain.png" id="3_w6fb6"]
-
-[sub_resource type="Animation" id="Animation_lsi77"]
-length = 0.001
-tracks/0/type = "value"
-tracks/0/imported = false
-tracks/0/enabled = true
-tracks/0/path = NodePath("LogoMadeWithGodot:position")
-tracks/0/interp = 1
-tracks/0/loop_wrap = true
-tracks/0/keys = {
-"times": PackedFloat32Array(0),
-"transitions": PackedFloat32Array(1),
-"update": 0,
-"values": [Vector2(517, 488)]
-}
-tracks/1/type = "value"
-tracks/1/imported = false
-tracks/1/enabled = true
-tracks/1/path = NodePath("LogoBackpain:position")
-tracks/1/interp = 1
-tracks/1/loop_wrap = true
-tracks/1/keys = {
-"times": PackedFloat32Array(0),
-"transitions": PackedFloat32Array(1),
-"update": 0,
-"values": [Vector2(1088, 424)]
-}
-tracks/2/type = "value"
-tracks/2/imported = false
-tracks/2/enabled = true
-tracks/2/path = NodePath("ColorRect/VerticalDivisor:scale")
-tracks/2/interp = 1
-tracks/2/loop_wrap = true
-tracks/2/keys = {
-"times": PackedFloat32Array(0),
-"transitions": PackedFloat32Array(1),
-"update": 0,
-"values": [Vector2(1, 1)]
-}
-
-[sub_resource type="Animation" id="Animation_brjr2"]
-resource_name = "entrance"
-tracks/0/type = "value"
-tracks/0/imported = false
-tracks/0/enabled = true
-tracks/0/path = NodePath("LogoMadeWithGodot:position")
-tracks/0/interp = 1
-tracks/0/loop_wrap = true
-tracks/0/keys = {
-"times": PackedFloat32Array(0, 0.3663),
-"transitions": PackedFloat32Array(0.31864, 1),
-"update": 0,
-"values": [Vector2(517, 1090), Vector2(517, 488)]
-}
-tracks/1/type = "value"
-tracks/1/imported = false
-tracks/1/enabled = true
-tracks/1/path = NodePath("LogoBackpain:position")
-tracks/1/interp = 1
-tracks/1/loop_wrap = true
-tracks/1/keys = {
-"times": PackedFloat32Array(0.5661, 0.999),
-"transitions": PackedFloat32Array(0.378929, 1),
-"update": 0,
-"values": [Vector2(1088, 1090), Vector2(1088, 424)]
-}
-tracks/2/type = "value"
-tracks/2/imported = false
-tracks/2/enabled = true
-tracks/2/path = NodePath("ColorRect/VerticalDivisor:scale")
-tracks/2/interp = 1
-tracks/2/loop_wrap = true
-tracks/2/keys = {
-"times": PackedFloat32Array(0.4329, 0.666),
-"transitions": PackedFloat32Array(0.406126, 1),
-"update": 0,
-"values": [Vector2(1, 0), Vector2(1, 1)]
-}
-
-[sub_resource type="Animation" id="Animation_mltn6"]
-resource_name = "exit"
-tracks/0/type = "value"
-tracks/0/imported = false
-tracks/0/enabled = true
-tracks/0/path = NodePath("LogoMadeWithGodot:position")
-tracks/0/interp = 1
-tracks/0/loop_wrap = true
-tracks/0/keys = {
-"times": PackedFloat32Array(0, 0.3),
-"transitions": PackedFloat32Array(3.03143, 1),
-"update": 0,
-"values": [Vector2(517, 488), Vector2(517, 1090)]
-}
-tracks/1/type = "value"
-tracks/1/imported = false
-tracks/1/enabled = true
-tracks/1/path = NodePath("LogoBackpain:position")
-tracks/1/interp = 1
-tracks/1/loop_wrap = true
-tracks/1/keys = {
-"times": PackedFloat32Array(0.5994, 0.9),
-"transitions": PackedFloat32Array(3.36358, 1),
-"update": 0,
-"values": [Vector2(1088, 424), Vector2(1088, 1090)]
-}
-tracks/2/type = "value"
-tracks/2/imported = false
-tracks/2/enabled = true
-tracks/2/path = NodePath("ColorRect/VerticalDivisor:scale")
-tracks/2/interp = 1
-tracks/2/loop_wrap = true
-tracks/2/keys = {
-"times": PackedFloat32Array(0.3996, 0.6993),
-"transitions": PackedFloat32Array(0.329877, 1),
-"update": 0,
-"values": [Vector2(1, 1), Vector2(1, 1e-05)]
-}
-
-[sub_resource type="AnimationLibrary" id="AnimationLibrary_pkldf"]
-_data = {
-"RESET": SubResource("Animation_lsi77"),
-"entrance": SubResource("Animation_brjr2"),
-"exit": SubResource("Animation_mltn6")
-}
-
-[node name="SplashScreen" 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_8mb83")
-metadata/_edit_vertical_guides_ = [960.0, 832.0, 1088.0]
-metadata/_edit_horizontal_guides_ = [540.0]
-
-[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(1, 0.894118, 0.796078, 1)
-
-[node name="VerticalDivisor" type="Sprite2D" parent="ColorRect"]
-position = Vector2(960, 540)
-texture = ExtResource("1_2v5nx")
-
-[node name="LogoMadeWithGodot" type="TextureRect" parent="."]
-layout_mode = 0
-offset_left = 517.0
-offset_top = 488.0
-offset_right = 1306.0
-offset_bottom = 737.001
-scale = Vector2(0.4, 0.4)
-texture = ExtResource("2_6njfd")
-
-[node name="LogoBackpain" type="TextureRect" parent="."]
-layout_mode = 0
-offset_left = 1088.0
-offset_top = 424.0
-offset_right = 1929.0
-offset_bottom = 1320.0
-scale = Vector2(0.3, 0.3)
-texture = ExtResource("3_w6fb6")
-
-[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
-libraries = {
-"": SubResource("AnimationLibrary_pkldf")
-}
-autoplay = "entrance"
-
-[node name="Timer" type="Timer" parent="."]
-wait_time = 2.0
-one_shot = true
-
-[connection signal="animation_finished" from="AnimationPlayer" to="." method="_on_animation_player_animation_finished"]
-[connection signal="timeout" from="Timer" to="." method="_on_timer_timeout"]
diff --git a/scenes/base_level/BaseLevel.tscn b/scenes/base_level/BaseLevel.tscn
new file mode 100644 (file)
index 0000000..e815bb8
--- /dev/null
@@ -0,0 +1,6 @@
+[gd_scene load_steps=2 format=3 uid="uid://bvcxabiipiqj1"]
+
+[ext_resource type="Script" path="res://scenes/base_level/base_level.gd" id="1_3skoo"]
+
+[node name="BaseLevel" type="Node2D"]
+script = ExtResource("1_3skoo")
diff --git a/scenes/base_level/base_level.gd b/scenes/base_level/base_level.gd
new file mode 100644 (file)
index 0000000..58577cf
--- /dev/null
@@ -0,0 +1,11 @@
+extends Node2D
+
+
+# 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
diff --git a/scenes/main_menu.gd b/scenes/main_menu.gd
deleted file mode 100644 (file)
index 6613532..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-extends Control
-
-
-@onready var animation_player = $AnimationPlayer
-
-
-func _on_animation_player_animation_finished(anim_name):
-       if anim_name == "entrance":
-               animation_player.play("logo_bounce")
-
-
-func _on_exit_button_pressed():
-       get_tree().quit()
diff --git a/scenes/main_menu/MainMenu.tscn b/scenes/main_menu/MainMenu.tscn
new file mode 100644 (file)
index 0000000..6ef3400
--- /dev/null
@@ -0,0 +1,367 @@
+[gd_scene load_steps=10 format=3 uid="uid://brlsxlpsaxahp"]
+
+[ext_resource type="Texture2D" uid="uid://b1hgu1e1abcgx" path="res://assets/title_screen_background.png" id="1_0ke3n"]
+[ext_resource type="Script" path="res://scenes/main_menu/main_menu.gd" id="1_n2vcw"]
+[ext_resource type="Texture2D" uid="uid://cm6jp47f1d4cl" path="res://assets/ui-components/logo_routes&roots.png" id="2_1eb10"]
+[ext_resource type="PackedScene" uid="uid://c3uole0l14mxh" path="res://components/button/MainButton.tscn" id="4_pjqd4"]
+
+[sub_resource type="Animation" id="Animation_dyqmd"]
+length = 0.001
+tracks/0/type = "value"
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/path = NodePath(".:position")
+tracks/0/interp = 1
+tracks/0/loop_wrap = true
+tracks/0/keys = {
+"times": PackedFloat32Array(0),
+"transitions": PackedFloat32Array(1),
+"update": 0,
+"values": [Vector2(224, 0)]
+}
+tracks/1/type = "value"
+tracks/1/imported = false
+tracks/1/enabled = true
+tracks/1/path = NodePath("../StartButton:position")
+tracks/1/interp = 1
+tracks/1/loop_wrap = true
+tracks/1/keys = {
+"times": PackedFloat32Array(0),
+"transitions": PackedFloat32Array(1),
+"update": 0,
+"values": [Vector2(384, 640)]
+}
+tracks/2/type = "value"
+tracks/2/imported = false
+tracks/2/enabled = true
+tracks/2/path = NodePath("../SettingsButton:position")
+tracks/2/interp = 1
+tracks/2/loop_wrap = true
+tracks/2/keys = {
+"times": PackedFloat32Array(0),
+"transitions": PackedFloat32Array(1),
+"update": 0,
+"values": [Vector2(320, 776)]
+}
+tracks/3/type = "value"
+tracks/3/imported = false
+tracks/3/enabled = true
+tracks/3/path = NodePath("../ExitButton:position")
+tracks/3/interp = 1
+tracks/3/loop_wrap = true
+tracks/3/keys = {
+"times": PackedFloat32Array(0),
+"transitions": PackedFloat32Array(1),
+"update": 0,
+"values": [Vector2(256, 912)]
+}
+tracks/4/type = "value"
+tracks/4/imported = false
+tracks/4/enabled = true
+tracks/4/path = NodePath(".:rotation")
+tracks/4/interp = 3
+tracks/4/loop_wrap = true
+tracks/4/keys = {
+"times": PackedFloat32Array(0),
+"transitions": PackedFloat32Array(1),
+"update": 0,
+"values": [0.0]
+}
+tracks/5/type = "value"
+tracks/5/imported = false
+tracks/5/enabled = true
+tracks/5/path = NodePath("../Background:modulate")
+tracks/5/interp = 1
+tracks/5/loop_wrap = true
+tracks/5/keys = {
+"times": PackedFloat32Array(0),
+"transitions": PackedFloat32Array(1),
+"update": 0,
+"values": [Color(1, 1, 1, 1)]
+}
+tracks/6/type = "value"
+tracks/6/imported = false
+tracks/6/enabled = true
+tracks/6/path = NodePath("../Label:modulate")
+tracks/6/interp = 1
+tracks/6/loop_wrap = true
+tracks/6/keys = {
+"times": PackedFloat32Array(0),
+"transitions": PackedFloat32Array(1),
+"update": 0,
+"values": [Color(1, 1, 1, 1)]
+}
+tracks/7/type = "value"
+tracks/7/imported = false
+tracks/7/enabled = true
+tracks/7/path = NodePath(".:pivot_offset")
+tracks/7/interp = 1
+tracks/7/loop_wrap = true
+tracks/7/keys = {
+"times": PackedFloat32Array(0),
+"transitions": PackedFloat32Array(1),
+"update": 0,
+"values": [Vector2(710, 364)]
+}
+
+[sub_resource type="Animation" id="Animation_h7sqw"]
+resource_name = "logo_entrance"
+tracks/0/type = "value"
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/path = NodePath(".:position")
+tracks/0/interp = 1
+tracks/0/loop_wrap = true
+tracks/0/keys = {
+"times": PackedFloat32Array(0, 0.7),
+"transitions": PackedFloat32Array(1, 1),
+"update": 0,
+"values": [Vector2(248, 912), Vector2(248, 24)]
+}
+tracks/1/type = "value"
+tracks/1/imported = false
+tracks/1/enabled = true
+tracks/1/path = NodePath("../StartButton:position")
+tracks/1/interp = 1
+tracks/1/loop_wrap = true
+tracks/1/keys = {
+"times": PackedFloat32Array(0.5661, 0.7326),
+"transitions": PackedFloat32Array(1, 1),
+"update": 0,
+"values": [Vector2(248, 1104), Vector2(384, 640)]
+}
+tracks/2/type = "value"
+tracks/2/imported = false
+tracks/2/enabled = true
+tracks/2/path = NodePath("../SettingsButton:position")
+tracks/2/interp = 1
+tracks/2/loop_wrap = true
+tracks/2/keys = {
+"times": PackedFloat32Array(0.5661, 0.8658),
+"transitions": PackedFloat32Array(1, 1),
+"update": 0,
+"values": [Vector2(184, 1216), Vector2(320, 776)]
+}
+tracks/3/type = "value"
+tracks/3/imported = false
+tracks/3/enabled = true
+tracks/3/path = NodePath("../ExitButton:position")
+tracks/3/interp = 1
+tracks/3/loop_wrap = true
+tracks/3/keys = {
+"times": PackedFloat32Array(0.5661, 0.999),
+"transitions": PackedFloat32Array(1, 1),
+"update": 0,
+"values": [Vector2(120, 1336), Vector2(256, 912)]
+}
+
+[sub_resource type="Animation" id="Animation_410fw"]
+resource_name = "logo_bounce"
+length = 5.0
+loop_mode = 2
+tracks/0/type = "value"
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/path = NodePath(".:position")
+tracks/0/interp = 1
+tracks/0/loop_wrap = true
+tracks/0/keys = {
+"times": PackedFloat32Array(0, 4.995),
+"transitions": PackedFloat32Array(1, 1),
+"update": 0,
+"values": [Vector2(248, 24), Vector2(248, 72)]
+}
+
+[sub_resource type="Animation" id="Animation_5kjd6"]
+resource_name = "quit_game"
+tracks/0/type = "value"
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/path = NodePath("../StartButton:position")
+tracks/0/interp = 1
+tracks/0/loop_wrap = true
+tracks/0/keys = {
+"times": PackedFloat32Array(0.1332, 0.333),
+"transitions": PackedFloat32Array(1, 1),
+"update": 0,
+"values": [Vector2(384, 640), Vector2(392, 1096)]
+}
+tracks/1/type = "value"
+tracks/1/imported = false
+tracks/1/enabled = true
+tracks/1/path = NodePath("../SettingsButton:position")
+tracks/1/interp = 1
+tracks/1/loop_wrap = true
+tracks/1/keys = {
+"times": PackedFloat32Array(0.0666, 0.233),
+"transitions": PackedFloat32Array(1, 1),
+"update": 0,
+"values": [Vector2(320, 776), Vector2(328, 1144)]
+}
+tracks/2/type = "value"
+tracks/2/imported = false
+tracks/2/enabled = true
+tracks/2/path = NodePath("../ExitButton:position")
+tracks/2/interp = 1
+tracks/2/loop_wrap = true
+tracks/2/keys = {
+"times": PackedFloat32Array(-7.45058e-09, 0.133),
+"transitions": PackedFloat32Array(1, 1),
+"update": 0,
+"values": [Vector2(256, 912), Vector2(240, 1200)]
+}
+tracks/3/type = "value"
+tracks/3/imported = false
+tracks/3/enabled = true
+tracks/3/path = NodePath(".:rotation")
+tracks/3/interp = 3
+tracks/3/loop_wrap = true
+tracks/3/keys = {
+"times": PackedFloat32Array(0.2998, 0.3998, 0.6993),
+"transitions": PackedFloat32Array(1, 1, 1),
+"update": 0,
+"values": [0.0, -0.20944, 5.23599]
+}
+tracks/4/type = "value"
+tracks/4/imported = false
+tracks/4/enabled = true
+tracks/4/path = NodePath("../Background:modulate")
+tracks/4/interp = 1
+tracks/4/loop_wrap = true
+tracks/4/keys = {
+"times": PackedFloat32Array(0.5, 1),
+"transitions": PackedFloat32Array(1, 1),
+"update": 0,
+"values": [Color(1, 1, 1, 1), Color(0, 0, 0, 1)]
+}
+tracks/5/type = "value"
+tracks/5/imported = false
+tracks/5/enabled = true
+tracks/5/path = NodePath("../Label:modulate")
+tracks/5/interp = 1
+tracks/5/loop_wrap = true
+tracks/5/keys = {
+"times": PackedFloat32Array(0.5, 1),
+"transitions": PackedFloat32Array(1, 1),
+"update": 0,
+"values": [Color(1, 1, 1, 1), Color(0, 0, 0, 1)]
+}
+tracks/6/type = "value"
+tracks/6/imported = false
+tracks/6/enabled = true
+tracks/6/path = NodePath(".:pivot_offset")
+tracks/6/interp = 1
+tracks/6/loop_wrap = true
+tracks/6/keys = {
+"times": PackedFloat32Array(0.2, 0.3, 0.3996, 0.7),
+"transitions": PackedFloat32Array(1, 1, 1, 1),
+"update": 0,
+"values": [Vector2(710, 364), Vector2(710, 280), Vector2(730, 480), Vector2(1200, 1550)]
+}
+
+[sub_resource type="AnimationLibrary" id="AnimationLibrary_b7mng"]
+_data = {
+"RESET": SubResource("Animation_dyqmd"),
+"entrance": SubResource("Animation_h7sqw"),
+"logo_bounce": SubResource("Animation_410fw"),
+"quit_game": SubResource("Animation_5kjd6")
+}
+
+[node name="MainMenu" 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_n2vcw")
+
+[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
+root_node = NodePath("../Logo")
+libraries = {
+"": SubResource("AnimationLibrary_b7mng")
+}
+autoplay = "entrance"
+
+[node name="Background" type="TextureRect" parent="."]
+layout_mode = 0
+scale = Vector2(0.5, 0.5)
+texture = ExtResource("1_0ke3n")
+
+[node name="Logo" type="TextureRect" parent="."]
+layout_mode = 0
+offset_left = 224.0
+offset_right = 1740.0
+offset_bottom = 707.002
+scale = Vector2(0.5, 0.5)
+pivot_offset = Vector2(710, 364)
+texture = ExtResource("2_1eb10")
+
+[node name="StartButton" parent="." instance=ExtResource("4_pjqd4")]
+layout_mode = 0
+anchors_preset = 0
+anchor_left = 0.0
+anchor_top = 0.0
+anchor_right = 0.0
+anchor_bottom = 0.0
+offset_left = 384.0
+offset_top = 640.0
+offset_right = 1152.0
+offset_bottom = 880.001
+grow_horizontal = 1
+grow_vertical = 1
+scale = Vector2(0.5, 0.5)
+text = "Start"
+
+[node name="SettingsButton" parent="." instance=ExtResource("4_pjqd4")]
+layout_mode = 0
+anchors_preset = 0
+anchor_left = 0.0
+anchor_top = 0.0
+anchor_right = 0.0
+anchor_bottom = 0.0
+offset_left = 320.0
+offset_top = 776.0
+offset_right = 1088.0
+offset_bottom = 1016.0
+grow_horizontal = 1
+grow_vertical = 1
+scale = Vector2(0.5, 0.5)
+text = "Settings"
+
+[node name="ExitButton" parent="." instance=ExtResource("4_pjqd4")]
+layout_mode = 0
+anchors_preset = 0
+anchor_left = 0.0
+anchor_top = 0.0
+anchor_right = 0.0
+anchor_bottom = 0.0
+offset_left = 256.0
+offset_top = 912.0
+offset_right = 1024.0
+offset_bottom = 1152.0
+grow_horizontal = 1
+grow_vertical = 1
+scale = Vector2(0.5, 0.5)
+text = "Exit"
+
+[node name="Label" type="Label" parent="."]
+layout_mode = 1
+anchors_preset = 3
+anchor_left = 1.0
+anchor_top = 1.0
+anchor_right = 1.0
+anchor_bottom = 1.0
+offset_left = -297.0
+offset_top = -44.0
+offset_right = -10.0
+offset_bottom = -10.0
+grow_horizontal = 0
+grow_vertical = 0
+theme_override_font_sizes/font_size = 24
+text = "Back Pain Games © 2024"
+
+[connection signal="animation_finished" from="AnimationPlayer" to="." method="_on_animation_player_animation_finished"]
+[connection signal="pressed" from="StartButton" to="." method="_on_start_button_pressed"]
+[connection signal="pressed" from="SettingsButton" to="." method="_on_settings_button_pressed"]
+[connection signal="pressed" from="ExitButton" to="." method="_on_exit_button_pressed"]
diff --git a/scenes/main_menu/main_menu.gd b/scenes/main_menu/main_menu.gd
new file mode 100644 (file)
index 0000000..6943d2e
--- /dev/null
@@ -0,0 +1,22 @@
+extends Control
+
+
+@onready var animation_player = $AnimationPlayer
+
+
+func _on_animation_player_animation_finished(anim_name):
+       if anim_name == "entrance":
+               animation_player.play("logo_bounce")
+       elif anim_name == "quit_game":
+               get_tree().quit()
+
+func _on_start_button_pressed():
+       SceneManager.change_scene(Constants.BaseLevel_path, Constants.default_changeScene_config)
+
+
+func _on_settings_button_pressed():
+               SceneManager.change_scene(Constants.Settings_path, Constants.default_changeScene_config)
+
+
+func _on_exit_button_pressed():
+       animation_player.play("quit_game")
diff --git a/scenes/splash_screen.gd b/scenes/splash_screen.gd
deleted file mode 100644 (file)
index 6bb871e..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-extends Control
-
-@onready var timer = $Timer
-@onready var animation_player = $AnimationPlayer
-
-
-func _on_animation_player_animation_finished(anim_name):
-       if anim_name == "entrance":
-               timer.start()
-       elif anim_name == "exit":
-               SceneManager.change_scene("res://scenes/MainMenu.tscn",
-               { 
-                       "speed": 2,
-                       "pattern": "diagonal",
-                       "wait_time": 0
-                })
-
-
-func _on_timer_timeout():
-       animation_player.play("exit")
diff --git a/scenes/splash_screen/SplashScreen.tscn b/scenes/splash_screen/SplashScreen.tscn
new file mode 100644 (file)
index 0000000..9fd15a4
--- /dev/null
@@ -0,0 +1,184 @@
+[gd_scene load_steps=9 format=3 uid="uid://cy24adufhvmvm"]
+
+[ext_resource type="Texture2D" uid="uid://b3u2jhhvyo8ss" path="res://assets/vertical_divisor.png" id="1_2v5nx"]
+[ext_resource type="Script" path="res://scenes/splash_screen/splash_screen.gd" id="1_8mb83"]
+[ext_resource type="Texture2D" uid="uid://c2hclus3idni7" path="res://assets/logo_made_with_godot.png" id="2_6njfd"]
+[ext_resource type="Texture2D" uid="uid://bwwrm5h5uvljd" path="res://assets/logo_backpain.png" id="3_w6fb6"]
+
+[sub_resource type="Animation" id="Animation_lsi77"]
+length = 0.001
+tracks/0/type = "value"
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/path = NodePath("LogoMadeWithGodot:position")
+tracks/0/interp = 1
+tracks/0/loop_wrap = true
+tracks/0/keys = {
+"times": PackedFloat32Array(0),
+"transitions": PackedFloat32Array(1),
+"update": 0,
+"values": [Vector2(517, 488)]
+}
+tracks/1/type = "value"
+tracks/1/imported = false
+tracks/1/enabled = true
+tracks/1/path = NodePath("LogoBackpain:position")
+tracks/1/interp = 1
+tracks/1/loop_wrap = true
+tracks/1/keys = {
+"times": PackedFloat32Array(0),
+"transitions": PackedFloat32Array(1),
+"update": 0,
+"values": [Vector2(1088, 424)]
+}
+tracks/2/type = "value"
+tracks/2/imported = false
+tracks/2/enabled = true
+tracks/2/path = NodePath("ColorRect/VerticalDivisor:scale")
+tracks/2/interp = 1
+tracks/2/loop_wrap = true
+tracks/2/keys = {
+"times": PackedFloat32Array(0),
+"transitions": PackedFloat32Array(1),
+"update": 0,
+"values": [Vector2(1, 1)]
+}
+
+[sub_resource type="Animation" id="Animation_brjr2"]
+resource_name = "entrance"
+tracks/0/type = "value"
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/path = NodePath("LogoMadeWithGodot:position")
+tracks/0/interp = 1
+tracks/0/loop_wrap = true
+tracks/0/keys = {
+"times": PackedFloat32Array(0, 0.3663),
+"transitions": PackedFloat32Array(0.31864, 1),
+"update": 0,
+"values": [Vector2(517, 1090), Vector2(517, 488)]
+}
+tracks/1/type = "value"
+tracks/1/imported = false
+tracks/1/enabled = true
+tracks/1/path = NodePath("LogoBackpain:position")
+tracks/1/interp = 1
+tracks/1/loop_wrap = true
+tracks/1/keys = {
+"times": PackedFloat32Array(0.5661, 0.999),
+"transitions": PackedFloat32Array(0.378929, 1),
+"update": 0,
+"values": [Vector2(1088, 1090), Vector2(1088, 424)]
+}
+tracks/2/type = "value"
+tracks/2/imported = false
+tracks/2/enabled = true
+tracks/2/path = NodePath("ColorRect/VerticalDivisor:scale")
+tracks/2/interp = 1
+tracks/2/loop_wrap = true
+tracks/2/keys = {
+"times": PackedFloat32Array(0.4329, 0.666),
+"transitions": PackedFloat32Array(0.406126, 1),
+"update": 0,
+"values": [Vector2(1, 0), Vector2(1, 1)]
+}
+
+[sub_resource type="Animation" id="Animation_mltn6"]
+resource_name = "exit"
+tracks/0/type = "value"
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/path = NodePath("LogoMadeWithGodot:position")
+tracks/0/interp = 1
+tracks/0/loop_wrap = true
+tracks/0/keys = {
+"times": PackedFloat32Array(0, 0.3),
+"transitions": PackedFloat32Array(3.03143, 1),
+"update": 0,
+"values": [Vector2(517, 488), Vector2(517, 1090)]
+}
+tracks/1/type = "value"
+tracks/1/imported = false
+tracks/1/enabled = true
+tracks/1/path = NodePath("LogoBackpain:position")
+tracks/1/interp = 1
+tracks/1/loop_wrap = true
+tracks/1/keys = {
+"times": PackedFloat32Array(0.5994, 0.9),
+"transitions": PackedFloat32Array(3.36358, 1),
+"update": 0,
+"values": [Vector2(1088, 424), Vector2(1088, 1090)]
+}
+tracks/2/type = "value"
+tracks/2/imported = false
+tracks/2/enabled = true
+tracks/2/path = NodePath("ColorRect/VerticalDivisor:scale")
+tracks/2/interp = 1
+tracks/2/loop_wrap = true
+tracks/2/keys = {
+"times": PackedFloat32Array(0.3996, 0.6993),
+"transitions": PackedFloat32Array(0.329877, 1),
+"update": 0,
+"values": [Vector2(1, 1), Vector2(1, 1e-05)]
+}
+
+[sub_resource type="AnimationLibrary" id="AnimationLibrary_pkldf"]
+_data = {
+"RESET": SubResource("Animation_lsi77"),
+"entrance": SubResource("Animation_brjr2"),
+"exit": SubResource("Animation_mltn6")
+}
+
+[node name="SplashScreen" 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_8mb83")
+metadata/_edit_vertical_guides_ = [960.0, 832.0, 1088.0]
+metadata/_edit_horizontal_guides_ = [540.0]
+
+[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(1, 0.894118, 0.796078, 1)
+
+[node name="VerticalDivisor" type="Sprite2D" parent="ColorRect"]
+position = Vector2(960, 540)
+texture = ExtResource("1_2v5nx")
+
+[node name="LogoMadeWithGodot" type="TextureRect" parent="."]
+layout_mode = 0
+offset_left = 517.0
+offset_top = 488.0
+offset_right = 1306.0
+offset_bottom = 737.001
+scale = Vector2(0.4, 0.4)
+texture = ExtResource("2_6njfd")
+
+[node name="LogoBackpain" type="TextureRect" parent="."]
+layout_mode = 0
+offset_left = 1088.0
+offset_top = 424.0
+offset_right = 1929.0
+offset_bottom = 1320.0
+scale = Vector2(0.3, 0.3)
+texture = ExtResource("3_w6fb6")
+
+[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
+libraries = {
+"": SubResource("AnimationLibrary_pkldf")
+}
+autoplay = "entrance"
+
+[node name="Timer" type="Timer" parent="."]
+one_shot = true
+
+[connection signal="animation_finished" from="AnimationPlayer" to="." method="_on_animation_player_animation_finished"]
+[connection signal="timeout" from="Timer" to="." method="_on_timer_timeout"]
diff --git a/scenes/splash_screen/splash_screen.gd b/scenes/splash_screen/splash_screen.gd
new file mode 100644 (file)
index 0000000..29b697a
--- /dev/null
@@ -0,0 +1,15 @@
+extends Control
+
+@onready var timer = $Timer
+@onready var animation_player = $AnimationPlayer
+
+
+func _on_animation_player_animation_finished(anim_name):
+       if anim_name == "entrance":
+               timer.start()
+       elif anim_name == "exit":
+               SceneManager.change_scene(Constants.MainMenu_path, Constants.default_changeScene_config)
+
+
+func _on_timer_timeout():
+       animation_player.play("exit")