From 7b1f884e84023cc5be7e8e806af2a3f2b2d96e39 Mon Sep 17 00:00:00 2001 From: Yogi Wiguna Date: Thu, 26 Mar 2026 11:45:16 +0800 Subject: [PATCH] feat: Implement initial main game scene including game world, player UI, and touch controls, along with a new UI manager script and ranking graphic asset. --- assets/graphics/gui/rankings/3rd.png | Bin 9876 -> 9298 bytes assets/graphics/gui/rankings/3rd.png.import | 2 +- scenes/main.tscn | 109 ++++++++++++-------- scripts/managers/ui_manager.gd | 13 ++- 4 files changed, 79 insertions(+), 45 deletions(-) diff --git a/assets/graphics/gui/rankings/3rd.png b/assets/graphics/gui/rankings/3rd.png index c175d57cc98292fc728ae233d5e5e0af1e68b4eb..4ceffe140cb9eef5240c6035e742847779bbb469 100644 GIT binary patch literal 9298 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 B5Cs4L diff --git a/assets/graphics/gui/rankings/3rd.png.import b/assets/graphics/gui/rankings/3rd.png.import index 4301db6..1c3e3f6 100644 --- a/assets/graphics/gui/rankings/3rd.png.import +++ b/assets/graphics/gui/rankings/3rd.png.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://f5mgglfrifjd" +uid="uid://bowng12514p53" path="res://.godot/imported/3rd.png-3cb9417b465e45d108dc5bb387e9572c.ctex" metadata={ "vram_texture": false diff --git a/scenes/main.tscn b/scenes/main.tscn index 90ba788..9b60c05 100644 --- a/scenes/main.tscn +++ b/scenes/main.tscn @@ -23,6 +23,7 @@ [ext_resource type="Texture2D" uid="uid://ctgxeo2i3vcfq" path="res://assets/graphics/gui/gauge/Segment1_empty.png" id="16_yq6so"] [ext_resource type="Texture2D" uid="uid://djbin5556lwsx" path="res://assets/graphics/gui/gauge/Segment2_empty.png" id="17_fv21b"] [ext_resource type="Theme" uid="uid://0dhxl4ohyxh8" path="res://assets/graphics/game_setting/setting_theme.tres" id="18_pm3ni"] +[ext_resource type="Texture2D" uid="uid://cxp0k2spgs080" path="res://assets/graphics/gui/gauge/gauge_ready.png" id="22_kmb1v"] [ext_resource type="Texture2D" uid="uid://ba80xnybpixw2" path="res://assets/graphics/touch_control/take_tile.png" id="25_qkpxi"] [ext_resource type="Texture2D" uid="uid://bsgqrjx2ity4c" path="res://assets/graphics/touch_control/speed.png" id="26_2f3dj"] [ext_resource type="Texture2D" uid="uid://pwxo4lb87yi" path="res://assets/graphics/touch_control/put_tile.png" id="26_5q0nq"] @@ -30,7 +31,7 @@ [ext_resource type="Texture2D" uid="uid://umw3e8nfe3vr" path="res://assets/graphics/touch_control/attack_mode.png" id="27_dgi5k"] [ext_resource type="Texture2D" uid="uid://cfpxknbdsk4u" path="res://assets/graphics/character_selection/sc_characters/sc_unknown.png" id="27_j8jky"] [ext_resource type="Texture2D" uid="uid://ikek8mcpeob5" path="res://assets/graphics/gui/rankings/2nd.png" id="28_fuf3a"] -[ext_resource type="Texture2D" uid="uid://f5mgglfrifjd" path="res://assets/graphics/gui/rankings/3rd.png" id="29_pibwh"] +[ext_resource type="Texture2D" uid="uid://bowng12514p53" path="res://assets/graphics/gui/rankings/3rd.png" id="29_pibwh"] [ext_resource type="Texture2D" uid="uid://biun2yvglxgij" path="res://assets/graphics/touch_control/grab_tekton.png" id="36_pibwh"] [ext_resource type="Script" uid="uid://86ikh0wuqk7v" path="res://scripts/ui/powerup_inventory_ui.gd" id="powerup_ui_script"] [ext_resource type="Script" uid="uid://b54tfa0n6kogi" path="res://scripts/managers/touch_controls.gd" id="touch_manager"] @@ -1124,44 +1125,62 @@ custom_minimum_size = Vector2(207, 135) layout_mode = 2 theme_override_styles/panel = SubResource("StyleBoxTexture_pibwh") -[node name="PowerUpBar" type="PanelContainer" parent="." unique_id=1775378146] +[node name="PowerBar" type="Control" parent="." unique_id=1778094375] +layout_mode = 3 +anchors_preset = 0 +offset_left = 24.0 +offset_top = 370.0 +offset_right = 169.0 +offset_bottom = 406.0 +rotation = -0.10297442 + +[node name="PowerUpBar" type="PanelContainer" parent="PowerBar" unique_id=1775378146] +layout_mode = 1 anchors_preset = 4 anchor_top = 0.5 anchor_bottom = 0.5 -offset_left = 24.0 -offset_top = 10.0 -offset_right = 169.0 -offset_bottom = 46.0 +offset_top = -18.0 +offset_right = 145.0 +offset_bottom = 18.0 grow_vertical = 2 -rotation = -0.10297442 scale = Vector2(1.5, 1.5) theme_override_styles/panel = SubResource("StyleBoxTexture_tel4y") -[node name="HBox" type="HBoxContainer" parent="PowerUpBar" unique_id=334600330] +[node name="HBox" type="HBoxContainer" parent="PowerBar/PowerUpBar" unique_id=334600330] layout_mode = 2 theme_override_constants/separation = 0 alignment = 1 -[node name="PowerLabel" type="Panel" parent="PowerUpBar/HBox" unique_id=1662719884] +[node name="PowerLabel" type="Panel" parent="PowerBar/PowerUpBar/HBox" unique_id=1662719884] custom_minimum_size = Vector2(39, 36) layout_mode = 2 theme_override_styles/panel = SubResource("StyleBoxTexture_qkpxi") -[node name="Segment0" type="Panel" parent="PowerUpBar/HBox" unique_id=500774723] +[node name="Segment0" type="Panel" parent="PowerBar/PowerUpBar/HBox" unique_id=500774723] custom_minimum_size = Vector2(33, 36) layout_mode = 2 theme_override_styles/panel = SubResource("StyleBoxTexture_5q0nq") -[node name="Segment1" type="Panel" parent="PowerUpBar/HBox" unique_id=1042222722] +[node name="Segment1" type="Panel" parent="PowerBar/PowerUpBar/HBox" unique_id=1042222722] custom_minimum_size = Vector2(33, 36) layout_mode = 2 theme_override_styles/panel = SubResource("StyleBoxTexture_dgi5k") -[node name="Segment2" type="Panel" parent="PowerUpBar/HBox" unique_id=272336972] +[node name="Segment2" type="Panel" parent="PowerBar/PowerUpBar/HBox" unique_id=272336972] custom_minimum_size = Vector2(40, 36) layout_mode = 2 theme_override_styles/panel = SubResource("StyleBoxTexture_j8jky") +[node name="PowerUpReady" type="TextureRect" parent="PowerBar" unique_id=60059461] +visible = false +layout_mode = 0 +offset_left = 39.0 +offset_top = -13.0 +offset_right = 231.3631 +offset_bottom = 58.511047 +texture = ExtResource("22_kmb1v") +expand_mode = 1 + [node name="GoalsTimer" type="PanelContainer" parent="." unique_id=2106663301] visible = false offset_left = 223.8717 @@ -1265,16 +1284,18 @@ layout_mode = 2 theme_override_styles/panel = SubResource("StyleBoxTexture_5he1u") [node name="HBox" type="HBoxContainer" parent="LeaderboardPanel/MarginContainer/VBox/Entry1" unique_id=617135879] +custom_minimum_size = Vector2(0, 100) layout_mode = 2 theme_override_constants/separation = 2 [node name="RankLabel" type="Label" parent="LeaderboardPanel/MarginContainer/VBox/Entry1/HBox" unique_id=828754165] custom_minimum_size = Vector2(70, 0) layout_mode = 2 +theme_override_colors/font_color = Color(0.9647059, 0.7607843, 0.20392157, 1) theme_override_colors/font_outline_color = Color(0, 0, 0, 1) -theme_override_constants/outline_size = 7 +theme_override_constants/outline_size = 15 theme_override_fonts/font = ExtResource("13_j8jky") -theme_override_font_sizes/font_size = 36 +theme_override_font_sizes/font_size = 50 text = "1st" horizontal_alignment = 1 vertical_alignment = 1 @@ -1283,12 +1304,12 @@ vertical_alignment = 1 custom_minimum_size = Vector2(100, 100) layout_mode = 2 texture = ExtResource("27_j8jky") -expand_mode = 1 -stretch_mode = 5 +expand_mode = 5 +stretch_mode = 6 [node name="SplitterContainer" type="VBoxContainer" parent="LeaderboardPanel/MarginContainer/VBox/Entry1/HBox" unique_id=1068203836] layout_mode = 2 -theme_override_constants/separation = 22 +theme_override_constants/separation = 18 alignment = 1 [node name="SectionA" type="HBoxContainer" parent="LeaderboardPanel/MarginContainer/VBox/Entry1/HBox/SplitterContainer" unique_id=1497811185] @@ -1299,14 +1320,13 @@ theme_override_constants/separation = 0 custom_minimum_size = Vector2(150, 0) layout_mode = 2 theme_override_fonts/font = ExtResource("13_j8jky") -theme_override_font_sizes/font_size = 22 +theme_override_font_sizes/font_size = 32 text = "Player 1" -vertical_alignment = 1 clip_text = true [node name="GhostIcon" type="TextureRect" parent="LeaderboardPanel/MarginContainer/VBox/Entry1/HBox/SplitterContainer/SectionA" unique_id=143108099] modulate = Color(1, 1, 1, 0) -custom_minimum_size = Vector2(25, 25) +custom_minimum_size = Vector2(40, 40) layout_mode = 2 expand_mode = 1 stretch_mode = 5 @@ -1321,7 +1341,7 @@ custom_minimum_size = Vector2(120, 0) layout_mode = 2 size_flags_horizontal = 3 theme_override_fonts/font = ExtResource("13_j8jky") -theme_override_font_sizes/font_size = 22 +theme_override_font_sizes/font_size = 32 text = "0" [node name="MiniPowerUpBar" type="HBoxContainer" parent="LeaderboardPanel/MarginContainer/VBox/Entry1/HBox/SplitterContainer/SectionB" unique_id=1277323584] @@ -1348,15 +1368,16 @@ theme_override_styles/panel = SubResource("StyleBoxTexture_5poiv") [node name="HBox" type="HBoxContainer" parent="LeaderboardPanel/MarginContainer/VBox/Entry2" unique_id=1942870621] layout_mode = 2 -theme_override_constants/separation = 2 +theme_override_constants/separation = 0 [node name="RankLabel" type="Label" parent="LeaderboardPanel/MarginContainer/VBox/Entry2/HBox" unique_id=1946714047] custom_minimum_size = Vector2(70, 0) layout_mode = 2 +theme_override_colors/font_color = Color(0.84313726, 0.84313726, 0.84313726, 1) theme_override_colors/font_outline_color = Color(0, 0, 0, 1) -theme_override_constants/outline_size = 7 +theme_override_constants/outline_size = 15 theme_override_fonts/font = ExtResource("13_j8jky") -theme_override_font_sizes/font_size = 36 +theme_override_font_sizes/font_size = 46 text = "2nd" horizontal_alignment = 1 vertical_alignment = 1 @@ -1366,11 +1387,11 @@ custom_minimum_size = Vector2(100, 100) layout_mode = 2 texture = ExtResource("27_j8jky") expand_mode = 1 -stretch_mode = 5 +stretch_mode = 6 [node name="SplitterContainer" type="VBoxContainer" parent="LeaderboardPanel/MarginContainer/VBox/Entry2/HBox" unique_id=2134048836] layout_mode = 2 -theme_override_constants/separation = 22 +theme_override_constants/separation = 8 alignment = 1 [node name="SectionA" type="HBoxContainer" parent="LeaderboardPanel/MarginContainer/VBox/Entry2/HBox/SplitterContainer" unique_id=1404467822] @@ -1381,14 +1402,14 @@ theme_override_constants/separation = 0 custom_minimum_size = Vector2(150, 0) layout_mode = 2 theme_override_fonts/font = ExtResource("13_j8jky") -theme_override_font_sizes/font_size = 22 +theme_override_font_sizes/font_size = 32 text = "Player 2" vertical_alignment = 1 clip_text = true [node name="GhostIcon" type="TextureRect" parent="LeaderboardPanel/MarginContainer/VBox/Entry2/HBox/SplitterContainer/SectionA" unique_id=414359335] modulate = Color(1, 1, 1, 0) -custom_minimum_size = Vector2(25, 25) +custom_minimum_size = Vector2(40, 40) layout_mode = 2 expand_mode = 1 stretch_mode = 5 @@ -1403,7 +1424,7 @@ custom_minimum_size = Vector2(120, 0) layout_mode = 2 size_flags_horizontal = 3 theme_override_fonts/font = ExtResource("13_j8jky") -theme_override_font_sizes/font_size = 22 +theme_override_font_sizes/font_size = 32 text = "0" [node name="MiniPowerUpBar" type="HBoxContainer" parent="LeaderboardPanel/MarginContainer/VBox/Entry2/HBox/SplitterContainer/SectionB" unique_id=219625555] @@ -1435,10 +1456,11 @@ theme_override_constants/separation = 2 [node name="RankLabel" type="Label" parent="LeaderboardPanel/MarginContainer/VBox/Entry3/HBox" unique_id=377846102] custom_minimum_size = Vector2(70, 0) layout_mode = 2 +theme_override_colors/font_color = Color(0.7647059, 0.4392157, 0.3019608, 1) theme_override_colors/font_outline_color = Color(0, 0, 0, 1) -theme_override_constants/outline_size = 7 +theme_override_constants/outline_size = 15 theme_override_fonts/font = ExtResource("13_j8jky") -theme_override_font_sizes/font_size = 36 +theme_override_font_sizes/font_size = 50 text = "3rd" horizontal_alignment = 1 vertical_alignment = 1 @@ -1448,11 +1470,11 @@ custom_minimum_size = Vector2(100, 100) layout_mode = 2 texture = ExtResource("27_j8jky") expand_mode = 1 -stretch_mode = 5 +stretch_mode = 6 [node name="SplitterContainer" type="VBoxContainer" parent="LeaderboardPanel/MarginContainer/VBox/Entry3/HBox" unique_id=1969616094] layout_mode = 2 -theme_override_constants/separation = 22 +theme_override_constants/separation = 8 alignment = 1 [node name="SectionA" type="HBoxContainer" parent="LeaderboardPanel/MarginContainer/VBox/Entry3/HBox/SplitterContainer" unique_id=1627755679] @@ -1463,14 +1485,14 @@ theme_override_constants/separation = 0 custom_minimum_size = Vector2(150, 0) layout_mode = 2 theme_override_fonts/font = ExtResource("13_j8jky") -theme_override_font_sizes/font_size = 22 +theme_override_font_sizes/font_size = 32 text = "Player 3" vertical_alignment = 1 clip_text = true [node name="GhostIcon" type="TextureRect" parent="LeaderboardPanel/MarginContainer/VBox/Entry3/HBox/SplitterContainer/SectionA" unique_id=616766448] modulate = Color(1, 1, 1, 0) -custom_minimum_size = Vector2(25, 25) +custom_minimum_size = Vector2(40, 40) layout_mode = 2 expand_mode = 1 stretch_mode = 5 @@ -1485,7 +1507,7 @@ custom_minimum_size = Vector2(120, 0) layout_mode = 2 size_flags_horizontal = 3 theme_override_fonts/font = ExtResource("13_j8jky") -theme_override_font_sizes/font_size = 22 +theme_override_font_sizes/font_size = 32 text = "0" [node name="MiniPowerUpBar" type="HBoxContainer" parent="LeaderboardPanel/MarginContainer/VBox/Entry3/HBox/SplitterContainer/SectionB" unique_id=473697297] @@ -1517,10 +1539,11 @@ theme_override_constants/separation = 2 [node name="RankLabel" type="Label" parent="LeaderboardPanel/MarginContainer/VBox/Entry4/HBox" unique_id=171801451] custom_minimum_size = Vector2(70, 0) layout_mode = 2 +theme_override_colors/font_color = Color(0.84313726, 0.84313726, 0.84313726, 1) theme_override_colors/font_outline_color = Color(0, 0, 0, 1) -theme_override_constants/outline_size = 7 +theme_override_constants/outline_size = 15 theme_override_fonts/font = ExtResource("13_j8jky") -theme_override_font_sizes/font_size = 36 +theme_override_font_sizes/font_size = 50 text = "4th" horizontal_alignment = 1 vertical_alignment = 1 @@ -1530,11 +1553,11 @@ custom_minimum_size = Vector2(100, 100) layout_mode = 2 texture = ExtResource("27_j8jky") expand_mode = 1 -stretch_mode = 5 +stretch_mode = 6 [node name="SplitterContainer" type="VBoxContainer" parent="LeaderboardPanel/MarginContainer/VBox/Entry4/HBox" unique_id=249320303] layout_mode = 2 -theme_override_constants/separation = 22 +theme_override_constants/separation = 8 alignment = 1 [node name="SectionA" type="HBoxContainer" parent="LeaderboardPanel/MarginContainer/VBox/Entry4/HBox/SplitterContainer" unique_id=404059862] @@ -1545,14 +1568,14 @@ theme_override_constants/separation = 0 custom_minimum_size = Vector2(150, 0) layout_mode = 2 theme_override_fonts/font = ExtResource("13_j8jky") -theme_override_font_sizes/font_size = 22 +theme_override_font_sizes/font_size = 32 text = "Player 4" vertical_alignment = 1 clip_text = true [node name="GhostIcon" type="TextureRect" parent="LeaderboardPanel/MarginContainer/VBox/Entry4/HBox/SplitterContainer/SectionA" unique_id=316169104] modulate = Color(1, 1, 1, 0) -custom_minimum_size = Vector2(25, 25) +custom_minimum_size = Vector2(40, 40) layout_mode = 2 expand_mode = 1 stretch_mode = 5 @@ -1567,7 +1590,7 @@ custom_minimum_size = Vector2(120, 0) layout_mode = 2 size_flags_horizontal = 3 theme_override_fonts/font = ExtResource("13_j8jky") -theme_override_font_sizes/font_size = 22 +theme_override_font_sizes/font_size = 32 text = "0" [node name="MiniPowerUpBar" type="HBoxContainer" parent="LeaderboardPanel/MarginContainer/VBox/Entry4/HBox/SplitterContainer/SectionB" unique_id=2099215641] diff --git a/scripts/managers/ui_manager.gd b/scripts/managers/ui_manager.gd index 90bd5f2..61ce0c2 100644 --- a/scripts/managers/ui_manager.gd +++ b/scripts/managers/ui_manager.gd @@ -230,14 +230,19 @@ func _connect_powerup_manager_deferred(player): # ============================================================================= var powerup_bar: PanelContainer +var powerup_ready_rect: TextureRect var powerup_segments: Array = [] func setup_powerup_bar_ui(main_node): """Get reference to existing PowerUpBar in scene and cache segment references.""" - powerup_bar = main_node.get_node_or_null("PowerUpBar") + powerup_bar = main_node.get_node_or_null("PowerBar/PowerUpBar") + if not powerup_bar: + powerup_bar = main_node.get_node_or_null("PowerUpBar") if not powerup_bar: push_warning("PowerUpBar node not found in scene") return + + powerup_ready_rect = main_node.get_node_or_null("PowerBar/PowerUpReady") # Get segment references from scene powerup_segments.clear() @@ -276,6 +281,12 @@ func update_powerup_bar(current_points: int, _max_points: int): style.texture = load(tex_path) segment.add_theme_stylebox_override("panel", style) + + if powerup_ready_rect: + if current_points >= _max_points and _max_points > 0: + powerup_ready_rect.visible = true + else: + powerup_ready_rect.visible = false var _previous_bars: int = 0