From: Eduardo Date: Sun, 5 May 2024 17:13:54 +0000 (+0200) Subject: I added a constants file and replaced strings and repetitive thingys, changed some... X-Git-Url: http://git.edufdez.es/?a=commitdiff_plain;h=fd8f86531ad42994e4627d6c8f14037b65faf4ad;p=routes-n-roots.git I added a constants file and replaced strings and repetitive thingys, changed some animations and added others --- diff --git a/CONSTANTS.gd b/CONSTANTS.gd new file mode 100644 index 0000000..94269f6 --- /dev/null +++ b/CONSTANTS.gd @@ -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 + } diff --git a/project.godot b/project.godot index f0a85a9..3dcc7e4 100644 --- a/project.godot +++ b/project.godot @@ -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 index bce1597..0000000 --- a/scenes/MainMenu.tscn +++ /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 index d31cd45..0000000 --- a/scenes/SplashScreen.tscn +++ /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 index 0000000..e815bb8 --- /dev/null +++ b/scenes/base_level/BaseLevel.tscn @@ -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 index 0000000..58577cf --- /dev/null +++ b/scenes/base_level/base_level.gd @@ -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 index 6613532..0000000 --- a/scenes/main_menu.gd +++ /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 index 0000000..6ef3400 --- /dev/null +++ b/scenes/main_menu/MainMenu.tscn @@ -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 index 0000000..6943d2e --- /dev/null +++ b/scenes/main_menu/main_menu.gd @@ -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 index 6bb871e..0000000 --- a/scenes/splash_screen.gd +++ /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 index 0000000..9fd15a4 --- /dev/null +++ b/scenes/splash_screen/SplashScreen.tscn @@ -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 index 0000000..29b697a --- /dev/null +++ b/scenes/splash_screen/splash_screen.gd @@ -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")