From f0010340251df7d829133ccc5061e011edc53404 Mon Sep 17 00:00:00 2001 From: lightyears Date: Mon, 20 Feb 2023 05:03:56 +0800 Subject: [PATCH] =?UTF-8?q?=E6=98=BE=E7=A4=BA=E6=9A=82=E5=81=9C=E8=8F=9C?= =?UTF-8?q?=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Components/PauseMenu.cs | 22 --------- Components/PauseMenu.tscn | 43 ----------------- ...{SettingsPopup.cs => SettingsMenuPopup.cs} | 6 +-- ...tingsPopup.tscn => SettingsMenuPopup.tscn} | 12 ++--- Extensions/NodeExtension.cs | 10 ++++ Scenes/BattleScene.cs | 40 ++++++++++++++-- Scenes/BattleScene.tscn | 47 +++++++++++++++++-- Scenes/MainScene.tscn | 4 +- project.godot | 5 ++ 9 files changed, 105 insertions(+), 84 deletions(-) delete mode 100644 Components/PauseMenu.cs delete mode 100644 Components/PauseMenu.tscn rename Components/{SettingsPopup.cs => SettingsMenuPopup.cs} (53%) rename Components/{SettingsPopup.tscn => SettingsMenuPopup.tscn} (64%) create mode 100644 Extensions/NodeExtension.cs diff --git a/Components/PauseMenu.cs b/Components/PauseMenu.cs deleted file mode 100644 index fcb5b15..0000000 --- a/Components/PauseMenu.cs +++ /dev/null @@ -1,22 +0,0 @@ -using CommunityToolkit.Diagnostics; - -namespace CMSGame -{ - public partial class PauseMenu : VBoxContainer - { - public void On_ResumeBattleButton_Pressed() - { - Hide(); - } - - public void On_SettingsMenuButton_Pressed() - { - GetNode("%SettingsPopup").PopupCentered(); - } - - public void On_EscapeFromBattleButton_Pressed() - { - ThrowHelper.ThrowNotSupportedException(); - } - } -} diff --git a/Components/PauseMenu.tscn b/Components/PauseMenu.tscn deleted file mode 100644 index 619e88e..0000000 --- a/Components/PauseMenu.tscn +++ /dev/null @@ -1,43 +0,0 @@ -[gd_scene load_steps=3 format=3 uid="uid://c1c87rr8eubhg"] - -[ext_resource type="Script" path="res://Components/PauseMenu.cs" id="1_p1e8d"] -[ext_resource type="PackedScene" uid="uid://dpd2tih2iudvb" path="res://Components/SettingsPopup.tscn" id="2_bymub"] - -[node name="PauseMenu" type="VBoxContainer"] -anchors_preset = 8 -anchor_left = 0.5 -anchor_top = 0.5 -anchor_right = 0.5 -anchor_bottom = 0.5 -offset_left = -86.0 -offset_top = -33.0 -offset_right = 86.0 -offset_bottom = 33.0 -grow_horizontal = 2 -grow_vertical = 2 -size_flags_horizontal = 4 -size_flags_vertical = 4 -script = ExtResource("1_p1e8d") - -[node name="ResumeBattleButton" type="Button" parent="."] -unique_name_in_owner = true -layout_mode = 2 -text = "继续战斗" - -[node name="SettingsMenuButton" type="Button" parent="."] -unique_name_in_owner = true -layout_mode = 2 -text = "游戏设置" - -[node name="EscapeFromBattleButton" type="Button" parent="."] -unique_name_in_owner = true -layout_mode = 2 -text = "退出战斗" - -[node name="SettingsPopup" parent="." instance=ExtResource("2_bymub")] -unique_name_in_owner = true -visible = false - -[connection signal="pressed" from="ResumeBattleButton" to="." method="On_ResumeBattleButton_Pressed"] -[connection signal="pressed" from="SettingsMenuButton" to="." method="On_SettingsMenuButton_Pressed"] -[connection signal="pressed" from="EscapeFromBattleButton" to="." method="On_EscapeFromBattleButton_Pressed"] diff --git a/Components/SettingsPopup.cs b/Components/SettingsMenuPopup.cs similarity index 53% rename from Components/SettingsPopup.cs rename to Components/SettingsMenuPopup.cs index 794666e..a383201 100644 --- a/Components/SettingsPopup.cs +++ b/Components/SettingsMenuPopup.cs @@ -1,11 +1,7 @@ namespace CMSGame { - public partial class SettingsPopup : Popup + public partial class SettingsMenuPopup : Popup { - public override void _Ready() - { - } - public void On_ConfirmButton_Pressed() { Hide(); diff --git a/Components/SettingsPopup.tscn b/Components/SettingsMenuPopup.tscn similarity index 64% rename from Components/SettingsPopup.tscn rename to Components/SettingsMenuPopup.tscn index ac5f149..3437318 100644 --- a/Components/SettingsPopup.tscn +++ b/Components/SettingsMenuPopup.tscn @@ -1,18 +1,18 @@ -[gd_scene load_steps=3 format=3 uid="uid://dpd2tih2iudvb"] +[gd_scene load_steps=3 format=3 uid="uid://cslqihnfw0me2"] -[ext_resource type="PackedScene" uid="uid://blk2uswpo2a7k" path="res://Components/SettingsMenu.tscn" id="1_573hy"] -[ext_resource type="Script" path="res://Components/SettingsPopup.cs" id="1_ts6p7"] +[ext_resource type="Script" path="res://Components/SettingsMenuPopup.cs" id="1_it4yp"] +[ext_resource type="PackedScene" uid="uid://blk2uswpo2a7k" path="res://Components/SettingsMenu.tscn" id="2_qc1kk"] -[node name="SettingsPopup" type="Popup"] +[node name="SettingsMenuPopup" type="Popup"] size = Vector2i(172, 101) visible = true -script = ExtResource("1_ts6p7") +script = ExtResource("1_it4yp") [node name="VBoxContainer" type="VBoxContainer" parent="."] offset_right = 40.0 offset_bottom = 40.0 -[node name="SettingsMenu" parent="VBoxContainer" instance=ExtResource("1_573hy")] +[node name="SettingsMenu" parent="VBoxContainer" instance=ExtResource("2_qc1kk")] layout_mode = 2 [node name="ConfirmButton" type="Button" parent="VBoxContainer"] diff --git a/Extensions/NodeExtension.cs b/Extensions/NodeExtension.cs new file mode 100644 index 0000000..c62a77b --- /dev/null +++ b/Extensions/NodeExtension.cs @@ -0,0 +1,10 @@ +namespace CMSGame +{ + public static class NodeExtension + { + public static T GetUniqueNode(this Node node, string uniqueName) where T : Node + { + return node.GetNode($"%{uniqueName}"); + } + } +} diff --git a/Scenes/BattleScene.cs b/Scenes/BattleScene.cs index 2d0428c..dd46bdf 100644 --- a/Scenes/BattleScene.cs +++ b/Scenes/BattleScene.cs @@ -2,15 +2,23 @@ namespace CMSGame { public partial class BattleScene : Node3D { + public Popup PauseMenuPopup; + + public Popup SettingsMenuPopup; + public Label BattleTimeLabel; public double Time; public bool IsPause = false; + private bool IsPauseBeforePauseMenuPopup = false; + public override void _Ready() { - BattleTimeLabel = GetNode