From a5973dce1398c067e0c596a9bdacf8684e3181b7 Mon Sep 17 00:00:00 2001 From: Kyaw Aung <kyawaung0924@gmail.com> Date: Sat, 1 Feb 2025 18:34:59 -0600 Subject: [PATCH] implemented scene_manager --- .godot/editor/create_recent.Node | 11 ++- .godot/editor/editor_layout.cfg | 12 +-- .godot/editor/filesystem_cache8 | 26 ++--- .godot/editor/filesystem_update4 | 9 ++ ...state-c2a7af834e91ff64325daddf58e45dc0.cfg | 2 +- .godot/editor/project_metadata.cfg | 6 +- .godot/editor/recent_dirs | 5 +- .godot/editor/script_editor_cache.cfg | 24 ++++- .godot/global_script_class_cache.cfg | 12 +-- .godot/uid_cache.bin | Bin 3512 -> 3632 bytes main.tscn | 9 +- scenes/board.tscn | 13 --- scenes/scene_manager.tscn | 74 ++++++++++++++ scenes/{ui => }/title_screen.tscn | 38 ++++---- scripts/board.gd | 90 ------------------ scripts/scene_manager.gd | 23 +++++ scripts/title_screen/title_screen.gd | 4 +- 17 files changed, 188 insertions(+), 170 deletions(-) delete mode 100644 scenes/board.tscn create mode 100644 scenes/scene_manager.tscn rename scenes/{ui => }/title_screen.tscn (81%) delete mode 100644 scripts/board.gd create mode 100644 scripts/scene_manager.gd diff --git a/.godot/editor/create_recent.Node b/.godot/editor/create_recent.Node index 5ef56d8..7014536 100644 --- a/.godot/editor/create_recent.Node +++ b/.godot/editor/create_recent.Node @@ -1,3 +1,9 @@ +Control +Node +Node2D +AnimationPlayer +ColorRect +CanvasLayer VBoxContainer TextureRect Sprite2D @@ -7,8 +13,3 @@ RichTextLabel Label HBoxContainer MarginContainer -Node2D -CPUParticles2D -Node -Control -ColorRect diff --git a/.godot/editor/editor_layout.cfg b/.godot/editor/editor_layout.cfg index c119055..7598b7a 100644 --- a/.godot/editor/editor_layout.cfg +++ b/.godot/editor/editor_layout.cfg @@ -17,24 +17,24 @@ dock_filesystem_v_split_offset=0 dock_filesystem_display_mode=0 dock_filesystem_file_sort=0 dock_filesystem_file_list_display_mode=1 -dock_filesystem_selected_paths=PackedStringArray() -dock_filesystem_uncollapsed_paths=PackedStringArray("Favorites", "res://", "res://scenes/", "res://assets/", "res://assets/ui/", "res://assets/ui/title_screen/") +dock_filesystem_selected_paths=PackedStringArray("res://scenes/scene_manager.tscn") +dock_filesystem_uncollapsed_paths=PackedStringArray("Favorites", "res://", "res://scripts/", "res://scenes/", "res://scenes/ui/", "res://assets/", "res://assets/ui/", "res://assets/ui/title_screen/") dock_3="Scene,Import" dock_4="FileSystem" dock_5="Inspector,Node,History" [EditorNode] -open_scenes=PackedStringArray("res://main.tscn", "res://scenes/ui/title_screen.tscn", "res://scenes/ui/menu_button.tscn") -current_scene="res://scenes/ui/title_screen.tscn" +open_scenes=PackedStringArray("res://main.tscn", "res://scenes/title_screen.tscn", "res://scenes/ui/menu_button.tscn", "res://scenes/scene_manager.tscn") +current_scene="res://scenes/title_screen.tscn" center_split_offset=-239 -selected_default_debugger_tab_idx=0 +selected_default_debugger_tab_idx=1 selected_main_editor_idx=2 selected_bottom_panel_item=0 [ScriptEditor] -open_scripts=["res://scripts/Bishop.gd", "res://scripts/game.gd", "res://scripts/King.gd", "res://scripts/Knight.gd", "res://scripts/title_screen/menu_button.gd", "res://scripts/Pawn.gd", "res://scripts/Piece.gd", "res://scripts/Queen.gd", "res://scripts/Rook.gd", "res://scripts/title_screen/title_screen.gd"] +open_scripts=["res://scripts/Bishop.gd", "res://scripts/game.gd", "res://scripts/King.gd", "res://scripts/Knight.gd", "res://scripts/title_screen/menu_button.gd", "res://scripts/Pawn.gd", "res://scripts/Piece.gd", "res://scripts/Queen.gd", "res://scripts/Rook.gd", "res://scripts/scene_manager.gd", "res://scripts/title_screen/title_screen.gd"] selected_script="res://scripts/title_screen/title_screen.gd" open_help=[] script_split_offset=70 diff --git a/.godot/editor/filesystem_cache8 b/.godot/editor/filesystem_cache8 index 8dc48d6..7efc48a 100644 --- a/.godot/editor/filesystem_cache8 +++ b/.godot/editor/filesystem_cache8 @@ -1,8 +1,9 @@ ea4bc82a6ad023ab7ee23ee620429895 -::res://::1738432521 +::res://::1738453219 icon.svg::CompressedTexture2D::6378281210119878262::1738189402::1738378143::1::::<><>:: -main.tscn::PackedScene::5692118487183161714::1738432521::0::1::::<><>:: +main.tscn::PackedScene::5692118487183161714::1738439413::0::1::::<><>:: README.md::TextFile::-1::1738189402::0::1::::<><>:: +title_screen.tscn::PackedScene::8154710134031658440::1738439414::0::1::::<><>::res://scripts/title_screen/title_screen.gd<>uid://bm8sv1itwm467::::res://scenes/ui/menu_button.tscn ::res://assets/::1738378134 ::res://assets/noise/::1738378134 noise2.tres::NoiseTexture2D::5054739835828921764::1738378134::0::1::::<><>:: @@ -30,11 +31,11 @@ White_knight.png::CompressedTexture2D::854350289879594279::1738378134::173837817 White_Pawn.png::CompressedTexture2D::919180529085242722::1738378134::1738378176::1::::<><>:: White_Queen.png::CompressedTexture2D::4902137832695542513::1738378134::1738378176::1::::<><>:: White_rook.png::CompressedTexture2D::4194129281780453908::1738378134::1738378176::1::::<><>:: -::res://assets/shaders/::1738432521 -3d_effect.gdshader::Shader::-1::1738432612::0::1::::<><>:: -bg.gdshader::Shader::-1::1738432612::0::1::::<><>:: -color.gdshader::Shader::-1::1738432612::0::1::::<><>:: -shadow.gdshader::Shader::-1::1738432612::0::1::::<><>:: +::res://assets/shaders/::1738452232 +3d_effect.gdshader::Shader::-1::1738452232::0::1::::<><>:: +bg.gdshader::Shader::-1::1738452232::0::1::::<><>:: +color.gdshader::Shader::-1::1738452232::0::1::::<><>:: +shadow.gdshader::Shader::-1::1738452232::0::1::::<><>:: ::res://assets/sprites/::1738378176 bishop.png::CompressedTexture2D::4631301773944929250::1738378134::1738378176::1::::<><>:: knight.png::CompressedTexture2D::3545640967717948854::1738378134::1738378176::1::::<><>:: @@ -66,7 +67,7 @@ Mockup Shop Design.jpg::CompressedTexture2D::8043055154093708922::1738378134::17 play_button.png::CompressedTexture2D::5896995890187459238::1738396598::1738396750::1::::<><>:: quit_button.png::CompressedTexture2D::5172428563227279585::1738432170::1738432186::1::::<><>:: rules_button.png::CompressedTexture2D::8060955005205795067::1738432116::1738432186::1::::<><>:: -::res://scenes/::1738379187 +::res://scenes/::1738452232 Bishop.tscn::PackedScene::2789588702038144760::1738378134::0::1::::<><>::res://scripts/Bishop.gd<>uid://b68o4mj7wcwvq::::res://assets/sprites/bishop.png board.tscn::PackedScene::5124694183364421304::1738378134::0::1::::<><>::uid://b0px5wlrm0mb3::::res://assets/temp_assets/temp_chess_board.png<>res://scripts/board.gd explosion.tscn::PackedScene::69466253159940830::1738378134::0::1::::<><>:: @@ -76,11 +77,11 @@ Knight.tscn::PackedScene::5270730075267457303::1738378134::0::1::::<><>::res://s Pawn.tscn::PackedScene::3675784333675896641::1738378134::0::1::::<><>::res://scripts/Pawn.gd<>uid://ndi1e8thkonq::::res://assets/Resized Chess Piece Assets/White_Pawn.png Queen.tscn::PackedScene::7495869360053814603::1738378134::0::1::::<><>::res://scripts/Queen.gd<>uid://cb3vq168iyomb::::res://assets/Resized Chess Piece Assets/White_Queen.png Rook.tscn::PackedScene::9162401199636684468::1738378134::0::1::::<><>::uid://b00wxxfjk04ke::::res://assets/Resized Chess Piece Assets/White_rook.png +scene_manager.tscn::PackedScene::6243365322716451430::1738452232::0::1::::<><>::res://scripts/scene_manager.gd texture_holder.tscn::PackedScene::594714386286134588::1738378134::0::1::::<><>:: -::res://scenes/title_screen/::1738432521 -menu_button.tscn::PackedScene::3297943059633979218::1738432521::0::1::::<><>::res://assets/shaders/3d_effect.gdshader<>res://scripts/title_screen/menu_button.gd -title_screen.tscn::PackedScene::8154710134031658440::1738432612::0::1::::<><>::res://scripts/title_screen/title_screen.gd<>uid://bm8sv1itwm467::::res://scenes/title_screen/menu_button.tscn -::res://scripts/::1738378687 +::res://scenes/ui/::1738453219 +menu_button.tscn::PackedScene::3297943059633979218::1738439414::0::1::::<><>::res://assets/shaders/3d_effect.gdshader<>res://scripts/title_screen/menu_button.gd +::res://scripts/::1738452232 Bishop.gd::GDScript::-1::1738378134::0::1::::Bishop<>Piece<>:: board.gd::GDScript::-1::1738378134::0::1::::Board<>Sprite2D<>:: game.gd::GDScript::-1::1738378134::0::1::::game<>Node<>:: @@ -90,6 +91,7 @@ Pawn.gd::GDScript::-1::1738378134::0::1::::Pawn<>Piece<>:: Piece.gd::GDScript::-1::1738378134::0::1::::Piece<>Node2D<>:: Queen.gd::GDScript::-1::1738378134::0::1::::Queen<>Piece<>:: Rook.gd::GDScript::-1::1738378134::0::1::::Rook<>Piece<>:: +scene_manager.gd::GDScript::-1::1738452232::0::1::::<>Node<>:: ::res://scripts/title_screen/::1738432517 menu_button.gd::GDScript::-1::1738432516::0::1::::TitleButton<>Button<>:: title_screen.gd::GDScript::-1::1738396766::0::1::::<>Control<>:: diff --git a/.godot/editor/filesystem_update4 b/.godot/editor/filesystem_update4 index 1f6f31f..9ab104b 100644 --- a/.godot/editor/filesystem_update4 +++ b/.godot/editor/filesystem_update4 @@ -8,3 +8,12 @@ res://scenes/title_screen/menu_button.tscn res://scripts/title_screen/menu_button.gd res://scenes/ui/title_screen.tscn res://scenes/ui/menu_button.tscn +res://scenes/scene_manager.tscn +res://scripts/scene_manager.gd +res://scenes/title_screen.tscn +res://scripts/title_screen/title_screen.gd +res://scenes/board.tscn +res://assets/noise/noise.tres +res://assets/noise/noise2.tres +res://assets/noise/noise3.tres +res://scenes/game.tscn diff --git a/.godot/editor/game.tscn-editstate-c2a7af834e91ff64325daddf58e45dc0.cfg b/.godot/editor/game.tscn-editstate-c2a7af834e91ff64325daddf58e45dc0.cfg index beea376..9d9ee14 100644 --- a/.godot/editor/game.tscn-editstate-c2a7af834e91ff64325daddf58e45dc0.cfg +++ b/.godot/editor/game.tscn-editstate-c2a7af834e91ff64325daddf58e45dc0.cfg @@ -175,4 +175,4 @@ Anim={ "zfar": 4000.01, "znear": 0.05 } -selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@16886/@Panel@13/@VBoxContainer@14/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@25/DockVSplitCenter/@VSplitContainer@52/@VBoxContainer@53/@PanelContainer@98/MainScreen/@CanvasItemEditor@9272/@VSplitContainer@9094/@HSplitContainer@9096/@HSplitContainer@9098/@Control@9099/@SubViewportContainer@9100/@SubViewport@9101/Node2D")]) +selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@16886/@Panel@13/@VBoxContainer@14/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@25/DockVSplitCenter/@VSplitContainer@52/@VBoxContainer@53/@PanelContainer@98/MainScreen/@CanvasItemEditor@9272/@VSplitContainer@9094/@HSplitContainer@9096/@HSplitContainer@9098/@Control@9099/@SubViewportContainer@9100/@SubViewport@9101/Main")]) diff --git a/.godot/editor/project_metadata.cfg b/.godot/editor/project_metadata.cfg index a62d012..3049fdb 100644 --- a/.godot/editor/project_metadata.cfg +++ b/.godot/editor/project_metadata.cfg @@ -14,13 +14,13 @@ last_selected_language="GDScript" [recent_files] -scripts=["res://scripts/title_screen/menu_button.gd", "res://scripts/title_screen/title_screen.gd", "res://scripts/Knight.gd", "res://scripts/King.gd", "res://scripts/Queen.gd", "res://scripts/Bishop.gd", "res://scripts/Rook.gd", "res://scripts/Pawn.gd", "res://scripts/Piece.gd", "@GDScript"] -scenes=["res://scenes/ui/title_screen.tscn", "res://scenes/title_screen/menu_button.tscn", "res://scenes/title_screen/title_screen.tscn", "res://main.tscn", "res://scenes/title_screen.tscn", "res://scenes/Knight.tscn", "res://scenes/King.tscn", "res://scenes/Queen.tscn", "res://scenes/Bishop.tscn", "res://scenes/Rook.tscn"] +scripts=["res://scripts/board.gd", "res://scripts/scene_manager.gd", "res://scripts/title_screen/menu_button.gd", "res://scripts/title_screen/title_screen.gd", "res://scripts/Knight.gd", "res://scripts/King.gd", "res://scripts/Queen.gd", "res://scripts/Bishop.gd", "res://scripts/Rook.gd", "res://scripts/Pawn.gd"] +scenes=["res://scenes/game.tscn", "res://scenes/board.tscn", "res://scenes/scene_manager.tscn", "res://scenes/ui/title_screen.tscn", "res://scenes/title_screen/menu_button.tscn", "res://scenes/title_screen/title_screen.tscn", "res://main.tscn", "res://scenes/title_screen.tscn", "res://scenes/Knight.tscn", "res://scenes/King.tscn"] [color_picker] picker_shape=3 -recent_presets=PackedColorArray(0.1, 0.25, 0.6, 0.996, 0.826, 0.826, 0.826, 0.9, 0.1, 0.25, 0.6, 0.899, 0.1, 0.25, 0.6, 0.8, 0.826, 0.826, 0.826, 0.8, 0.1, 0.25, 0.6, 0.9, 0.1, 0.25, 0.6, 1, 0.826, 0.826, 0.826, 1, 0, 0, 0, 1) +recent_presets=PackedColorArray(0.826, 0.826, 0.826, 0.8, 0.1, 0.25, 0.6, 0.9, 0.1, 0.25, 0.6, 1, 0.826, 0.826, 0.826, 1, 0, 0, 0, 1, 1, 1, 1, 0.757, 1, 1, 1, 1, 1, 1, 1, 0.5, 1, 1, 1, 0) color_mode=2 [shader_setup] diff --git a/.godot/editor/recent_dirs b/.godot/editor/recent_dirs index fe2be89..d8089ea 100644 --- a/.godot/editor/recent_dirs +++ b/.godot/editor/recent_dirs @@ -1,8 +1,7 @@ +res://scripts +res://scenes res://assets/sprites res://assets/ui/title_screen res://scripts/title_screen res://assets/shaders -res://scenes/title_screen -res://scenes -res://scripts res:// diff --git a/.godot/editor/script_editor_cache.cfg b/.godot/editor/script_editor_cache.cfg index 1ceafd2..7353c76 100644 --- a/.godot/editor/script_editor_cache.cfg +++ b/.godot/editor/script_editor_cache.cfg @@ -7,7 +7,7 @@ state={ "folded_lines": Array[int]([]), "h_scroll_position": 0, "row": 121, -"scroll_position": 0.0, +"scroll_position": 245.0, "selection": false, "syntax_highlighter": "GDScript" } @@ -115,10 +115,10 @@ state={ state={ "bookmarks": PackedInt32Array(), "breakpoints": PackedInt32Array(), -"column": 18, +"column": 0, "folded_lines": Array[int]([]), "h_scroll_position": 0, -"row": 18, +"row": 14, "scroll_position": 0.0, "selection": false, "syntax_highlighter": "GDScript" @@ -129,10 +129,24 @@ state={ state={ "bookmarks": PackedInt32Array(), "breakpoints": PackedInt32Array(), -"column": 38, +"column": 16, +"folded_lines": Array[int]([]), +"h_scroll_position": 0, +"row": 1, +"scroll_position": 6.0, +"selection": false, +"syntax_highlighter": "GDScript" +} + +[res://scripts/scene_manager.gd] + +state={ +"bookmarks": PackedInt32Array(), +"breakpoints": PackedInt32Array(), +"column": 26, "folded_lines": Array[int]([]), "h_scroll_position": 0, -"row": 12, +"row": 19, "scroll_position": 0.0, "selection": false, "syntax_highlighter": "GDScript" diff --git a/.godot/global_script_class_cache.cfg b/.godot/global_script_class_cache.cfg index 3013cb1..8a45576 100644 --- a/.godot/global_script_class_cache.cfg +++ b/.godot/global_script_class_cache.cfg @@ -5,12 +5,6 @@ list=Array[Dictionary]([{ "language": &"GDScript", "path": "res://scripts/Bishop.gd" }, { -"base": &"Sprite2D", -"class": &"Board", -"icon": "", -"language": &"GDScript", -"path": "res://scripts/board.gd" -}, { "base": &"Piece", "class": &"King", "icon": "", @@ -53,6 +47,12 @@ list=Array[Dictionary]([{ "language": &"GDScript", "path": "res://scripts/title_screen/menu_button.gd" }, { +"base": &"Control", +"class": &"TitleScreen", +"icon": "", +"language": &"GDScript", +"path": "res://scripts/title_screen/title_screen.gd" +}, { "base": &"Node", "class": &"game", "icon": "", diff --git a/.godot/uid_cache.bin b/.godot/uid_cache.bin index c6b5550b416535b573d452d7c1fc19d1e7be5534..22e184a8419b98ceab28129aa367e50231e86384 100644 GIT binary patch delta 108 zcmdlXy+MZ2btB_;-te?Zjmy_PUJ@qHz`#(HT5P4SU!0tpms$*=;&T)864O(Q^h%18 n^G@j61g?zKE)<6=Ey*m&NsTW~E=o<!Ls23(IhI?76)Xe*VihKR delta 10 RcmdlWvqPHEX(QuyUH}vI16cq7 diff --git a/main.tscn b/main.tscn index 4bb79b9..d611ce7 100644 --- a/main.tscn +++ b/main.tscn @@ -1,3 +1,8 @@ -[gd_scene format=3 uid="uid://cndkmh80f7mic"] +[gd_scene load_steps=2 format=3 uid="uid://cndkmh80f7mic"] -[node name="Main" type="Node2D"] +[ext_resource type="PackedScene" uid="uid://cu7lkx15lmfww" path="res://scenes/scene_manager.tscn" id="1_jedp3"] + +[node name="Main" type="Node"] +process_mode = 3 + +[node name="SceneManager" parent="." instance=ExtResource("1_jedp3")] diff --git a/scenes/board.tscn b/scenes/board.tscn deleted file mode 100644 index 5f4da26..0000000 --- a/scenes/board.tscn +++ /dev/null @@ -1,13 +0,0 @@ -[gd_scene load_steps=3 format=3 uid="uid://cfao716v0t1jw"] - -[ext_resource type="Texture2D" uid="uid://b0px5wlrm0mb3" path="res://assets/temp_assets/temp_chess_board.png" id="1_uv32f"] -[ext_resource type="Script" path="res://scripts/board.gd" id="2_lsc00"] - -[node name="Board" type="Sprite2D"] -position = Vector2(72, -72) -texture = ExtResource("1_uv32f") -script = ExtResource("2_lsc00") - -[node name="Pieces" type="Node2D" parent="."] - -[node name="Dots" type="Node2D" parent="."] diff --git a/scenes/scene_manager.tscn b/scenes/scene_manager.tscn new file mode 100644 index 0000000..69a8d2a --- /dev/null +++ b/scenes/scene_manager.tscn @@ -0,0 +1,74 @@ +[gd_scene load_steps=6 format=3 uid="uid://cu7lkx15lmfww"] + +[ext_resource type="Script" path="res://scripts/scene_manager.gd" id="1_g5ujx"] + +[sub_resource type="Animation" id="Animation_fjivo"] +resource_name = "fade_out" +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("ColorRect:modulate") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.5, 1), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 0.5), Color(1, 1, 1, 1)] +} + +[sub_resource type="Animation" id="Animation_2xwoy"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("ColorRect:modulate") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(1, 1, 1, 0)] +} + +[sub_resource type="Animation" id="Animation_kxlfu"] +resource_name = "fade_in" +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("ColorRect:modulate") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.5, 1), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0.5), Color(1, 1, 1, 0)] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_v8vj1"] +_data = { +"RESET": SubResource("Animation_2xwoy"), +"fade_in": SubResource("Animation_kxlfu"), +"fade_out": SubResource("Animation_fjivo") +} + +[node name="SceneManager" type="Node"] +script = ExtResource("1_g5ujx") + +[node name="CanvasLayer" type="CanvasLayer" parent="."] + +[node name="ColorRect" type="ColorRect" parent="CanvasLayer"] +modulate = Color(1, 1, 1, 0) +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +color = Color(0, 0, 0, 1) + +[node name="AnimationPlayer" type="AnimationPlayer" parent="CanvasLayer"] +libraries = { +"": SubResource("AnimationLibrary_v8vj1") +} diff --git a/scenes/ui/title_screen.tscn b/scenes/title_screen.tscn similarity index 81% rename from scenes/ui/title_screen.tscn rename to scenes/title_screen.tscn index e86506d..01e4db9 100644 --- a/scenes/ui/title_screen.tscn +++ b/scenes/title_screen.tscn @@ -1,26 +1,13 @@ [gd_scene load_steps=3 format=3 uid="uid://dogg5cp8c0f4s"] -[ext_resource type="Script" path="res://scripts/title_screen/title_screen.gd" id="1_sj2v7"] -[ext_resource type="PackedScene" uid="uid://bm8sv1itwm467" path="res://scenes/ui/menu_button.tscn" id="2_5iwbf"] +[ext_resource type="Script" path="res://scripts/title_screen/title_screen.gd" id="1_kqy6i"] +[ext_resource type="PackedScene" uid="uid://bm8sv1itwm467" path="res://scenes/ui/menu_button.tscn" id="2_kj14e"] [node name="TitleScreen" type="Control"] +process_mode = 3 layout_mode = 3 -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -grow_horizontal = 2 -grow_vertical = 2 -script = ExtResource("1_sj2v7") - -[node name="RichTextLabel" type="RichTextLabel" parent="."] -layout_mode = 2 -offset_left = 50.0 -offset_top = 50.0 -offset_right = 1230.0 -offset_bottom = 625.0 -size_flags_horizontal = 3 -theme_override_font_sizes/normal_font_size = 75 -text = "Go Save The King" +anchors_preset = 0 +script = ExtResource("1_kqy6i") [node name="MenuContainers" type="VBoxContainer" parent="."] layout_mode = 1 @@ -34,16 +21,25 @@ offset_bottom = -47.0 grow_vertical = 0 theme_override_constants/separation = 50 -[node name="PlayButton" parent="MenuContainers" instance=ExtResource("2_5iwbf")] +[node name="PlayButton" parent="MenuContainers" instance=ExtResource("2_kj14e")] layout_mode = 2 size_flags_vertical = 3 -[node name="RulesButton" parent="MenuContainers" instance=ExtResource("2_5iwbf")] +[node name="RulesButton" parent="MenuContainers" instance=ExtResource("2_kj14e")] layout_mode = 2 size_flags_vertical = 3 -[node name="QuitButton" parent="MenuContainers" instance=ExtResource("2_5iwbf")] +[node name="QuitButton" parent="MenuContainers" instance=ExtResource("2_kj14e")] layout_mode = 2 size_flags_vertical = 3 +[node name="RichTextLabel" type="RichTextLabel" parent="."] +offset_left = 50.0 +offset_top = 50.0 +offset_right = 1230.0 +offset_bottom = 625.0 +size_flags_horizontal = 3 +theme_override_font_sizes/normal_font_size = 75 +text = "Go Save The King" + [connection signal="pressed" from="MenuContainers/QuitButton" to="." method="_on_quit_pressed"] diff --git a/scripts/board.gd b/scripts/board.gd deleted file mode 100644 index 36b4359..0000000 --- a/scripts/board.gd +++ /dev/null @@ -1,90 +0,0 @@ -extends Sprite2D -class_name Board - -const BOARD_SIZE = 8 -const CELL_WIDTH = 18 - -# piece textures -const BLACK_BISHOP = preload("res://assets/temp_assets/black_bishop.png") -const BLACK_KING = preload("res://assets/temp_assets/black_king.png") -const BLACK_KNIGHT = preload("res://assets/temp_assets/black_knight.png") -const BLACK_PAWN = preload("res://assets/temp_assets/black_pawn.png") -const BLACK_QUEEN = preload("res://assets/temp_assets/black_queen.png") -const BLACK_ROOK = preload("res://assets/temp_assets/black_rook.png") -const WHITE_BISHOP = preload("res://assets/temp_assets/white_bishop.png") -const WHITE_KING = preload("res://assets/temp_assets/white_king.png") -const WHITE_KNIGHT = preload("res://assets/temp_assets/white_knight.png") -const WHITE_PAWN = preload("res://assets/temp_assets/white_pawn.png") -const WHITE_QUEEN = preload("res://assets/temp_assets/white_queen.png") -const WHITE_ROOK = preload("res://assets/temp_assets/white_rook.png") - -const TEXTURE_HOLDER = preload("res://scenes/texture_holder.tscn") - -@onready var pieces: Node2D = $Pieces -@onready var dots: Node2D = $Dots - -# Variables -var board: Array -var white: bool -var state: bool -var moves = [] -var selected_piece: Vector2 - -# Called when the node enters the scene tree for the first time. -func _ready() -> void: - board.append([4,2,3,5,6,3,2,4]) - board.append([1,1,1,1,1,1,1,1]) - board.append([0,0,0,0,0,0,0,0]) - board.append([0,0,0,0,0,0,0,0]) - board.append([0,0,0,0,0,0,0,0]) - board.append([0,0,0,0,0,0,0,0]) - board.append([-1,-1,-1,-1,-1,-1,-1,-1]) - board.append([-4,-2,-3,-5,-6,-3,-2,-4]) - - display_board() - -func _input(event): - if (event is InputEventMouseButton && event.pressed): - if (event.button_index == MOUSE_BUTTON_LEFT): - if is_mouse_out(): - return - - var mouse_position: Vector2 = get_global_mouse_position() - var x_click = snapped(mouse_position.x, 0) / CELL_WIDTH - var y_click = abs(snapped(mouse_position.y, 0)) / CELL_WIDTH - - print(x_click, y_click) - -# Checks if mouse input is on the board -func is_mouse_out() -> bool: - var mouse_position: Vector2 = get_global_mouse_position() - - if (mouse_position.x < 0 || mouse_position.x > 144 || mouse_position.y > 0 || mouse_position.y < -144): - return true - - return false - -# Displays board and instantiates "piece holders" -func display_board() -> void: - for i in BOARD_SIZE: - for j in BOARD_SIZE: - # Instantiate texture holders, scene that holds pieces - var holder = TEXTURE_HOLDER.instantiate() - pieces.add_child(holder) - holder.global_position = Vector2(j * CELL_WIDTH + (CELL_WIDTH / 2), -i * CELL_WIDTH - (CELL_WIDTH / 2)) - - # Looks at board array and matches pieces with its respective value - match board[i][j]: - -6: holder.texture = BLACK_KING - -5: holder.texture = BLACK_QUEEN - -4: holder.texture = BLACK_ROOK - -3: holder.texture = BLACK_BISHOP - -2: holder.texture = BLACK_KNIGHT - -1: holder.texture = BLACK_PAWN - 0: holder.texture = null - 6: holder.texture = WHITE_KING - 5: holder.texture = WHITE_QUEEN - 4: holder.texture = WHITE_ROOK - 3: holder.texture = WHITE_BISHOP - 2: holder.texture = WHITE_KNIGHT - 1: holder.texture = WHITE_PAWN diff --git a/scripts/scene_manager.gd b/scripts/scene_manager.gd new file mode 100644 index 0000000..4277381 --- /dev/null +++ b/scripts/scene_manager.gd @@ -0,0 +1,23 @@ +extends Node + +var current_scene = null + +@onready var fade_animation: AnimationPlayer = $CanvasLayer/AnimationPlayer + +func _ready() -> void: + change_scene("res://scenes/title_screen.tscn") + +func change_scene(scene_path: String) -> void: + fade_animation.play("fade_out") + await fade_animation.animation_finished + + if current_scene: + current_scene.queue_free() + + var new_scene = load(scene_path).instantiate() + + get_parent().add_child(new_scene) + current_scene = new_scene + + fade_animation.play("fade_in") + diff --git a/scripts/title_screen/title_screen.gd b/scripts/title_screen/title_screen.gd index 5dbfce4..fdf9fc4 100644 --- a/scripts/title_screen/title_screen.gd +++ b/scripts/title_screen/title_screen.gd @@ -1,17 +1,15 @@ extends Control +class_name TitleScreen @onready var play_button: TitleButton = $MenuContainers/PlayButton @onready var rules_button: TitleButton = $MenuContainers/RulesButton @onready var quit_button: TitleButton = $MenuContainers/QuitButton -# Called when the node enters the scene tree for the first time. func _ready() -> void: play_button.set_image("res://assets/ui/title_screen/play_button.png") rules_button.set_image("res://assets/ui/title_screen/rules_button.png") quit_button.set_image("res://assets/ui/title_screen/quit_button.png") - -# Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta: float) -> void: pass -- GitLab