From 92693f971984a0f05366724dd72538197add22a5 Mon Sep 17 00:00:00 2001 From: cakipaul Date: Tue, 24 Jun 2025 19:42:39 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=20gallery=20=E4=B8=8E=20bag?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- asset/art/ui/style_box/ui_gallery_item.png | Bin 0 -> 1160 bytes .../ui/style_box/ui_gallery_item.png.import | 34 +++++++ asset/dialogue/item_description.csv | 7 +- asset/dialogue/item_description.dialogue | 7 +- config/gallery_item_theme.tres | 58 +++++++++++ config/gallery_theme.tres | 54 ---------- scene/gallery/gallery.gd | 9 +- scene/gallery/gallery.tscn | 96 +++++++++++++----- scene/gallery/gallery_item.gd | 4 +- scene/gallery/gallery_item.tscn | 19 ++-- scene/prop/prop_bag.gd | 14 ++- scene/prop/prop_bag.tscn | 48 +++++++-- scene/settings/settings.tscn | 2 +- 13 files changed, 241 insertions(+), 111 deletions(-) create mode 100644 asset/art/ui/style_box/ui_gallery_item.png create mode 100644 asset/art/ui/style_box/ui_gallery_item.png.import create mode 100644 config/gallery_item_theme.tres delete mode 100644 config/gallery_theme.tres diff --git a/asset/art/ui/style_box/ui_gallery_item.png b/asset/art/ui/style_box/ui_gallery_item.png new file mode 100644 index 0000000000000000000000000000000000000000..97d20f2e1ab48ab991a1f32fb3c24fd46a1d46ff GIT binary patch literal 1160 zcmeAS@N?(olHy`uVBq!ia0y~yV3Y&0+d0^P{Hm9^wlMFKtvPf^yIx06N8?ZD+13$HaV6sz7l zZ%>|ae80i>Ig9O2n>w%DD*SWpr{~w?_J5mmdA@e;@7u}o?NOa`xwc+=#$GKKV%uYP zVts~Q#j5tGmz=p0yzf#rbTijplU7KG0wmwnn(c8_t%y#DFvE6v} z^~j&q4L{94^ENCDntXcB{b>uMo!(nc&^`QE@b^-a$h+BD%7#DVs`iB{H!n{MDtJBT z@V(COzSsl+D&+5r*BL5?4MFG&vy9|3J{_fSkATvhD99 z9XP%O-OVxB$@3*Bb`OW#g7&=0rx~0BL&lv6mTD(o<)i@ihG#$nC_#z!pt0_qhFakJj< zS$uU7flwaVwlue!(+nZ&NKvS8NC$Bd6cfEH(OZLk2E540Ji667kN z83*HMGCaETMz$mPBg1ha8;7QaVg))->0Co34Jr{197iILGap%5(U81TmrdaMuD;_| z@(Y&iDlojl1aj&Z*(T^Qyi@~XqcRzk^1;*2IU;qI%26id0d@t+&Ln>_hq5tP+=J~w*F0<0CV|v`_ znQ{E3+xEOKe_y=&_TPVZuJ_m9QH%d9S+#e4vHHx}=T9GB&3k>R(<8}C)mn1vmWCUg z`75{Z^UqyjpPSfkB%MB)R{GTFfI$>pRQxkn${ z5pC_YcKuotMvJ#5S8|SD-8K8=xm%b1MONQmHh<&hcaJX>O}u;jPLQ?ix-?Ceb35X4 z`nBcO%ir{yU#;wwK51`$nD^0usyEB!1l*%;)z9CSum88|nU>swM>jV1&jO}K>y;tp z6} void: layer = GlobalConfig.CANVAS_LAYER_GALLERY SceneManager.toggle_pause_counter(true) - $OpenSfx.play() + %OpenSfx.play() + %"物品".pressed.connect(_on_tab_pressed) + + +func _on_tab_pressed(): + SceneManager.toggle_pause_counter(false) + SceneManager.show_bag() + queue_free() func _unhandled_input(event: InputEvent) -> void: diff --git a/scene/gallery/gallery.tscn b/scene/gallery/gallery.tscn index 72cafcdb..788202ef 100644 --- a/scene/gallery/gallery.tscn +++ b/scene/gallery/gallery.tscn @@ -1,11 +1,12 @@ -[gd_scene load_steps=8 format=3 uid="uid://gfkdh8pqhixn"] +[gd_scene load_steps=9 format=3 uid="uid://gfkdh8pqhixn"] [ext_resource type="Script" uid="uid://bt86ajx7nwnk3" path="res://scene/gallery/gallery.gd" id="1_mpm8n"] [ext_resource type="AudioStream" uid="uid://dyjifofhdx25w" path="res://asset/audio/sfx/交互/打开背包.wav" id="2_kfxav"] [ext_resource type="PackedScene" uid="uid://du6jt6ae5ulvy" path="res://scene/gallery/gallery_item.tscn" id="2_m3ngl"] [ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="3_cntvv"] -[ext_resource type="Texture2D" uid="uid://dkvuc5llqax6d" path="res://asset/art/scene/c02/s03_公寓一楼院子/肉铺门板.png" id="3_db1ov"] [ext_resource type="PackedScene" uid="uid://ckd26q67hm7j0" path="res://scene/gallery/clips/clip1_偷听.tscn" id="3_ymhcd"] +[ext_resource type="Theme" uid="uid://ro8r1wa1bvua" path="res://config/gallery_item_theme.tres" id="4_bk3xr"] +[ext_resource type="Texture2D" uid="uid://dsj3l0baqg1g7" path="res://asset/art/ui/小蝶笔记.png" id="4_cntvv"] [ext_resource type="PackedScene" uid="uid://da4rposvvqo3d" path="res://scene/gallery/clips/clip2_疯子看井.tscn" id="7_cntvv"] [node name="Gallery" type="CanvasLayer"] @@ -13,6 +14,7 @@ process_mode = 3 script = ExtResource("1_mpm8n") [node name="OpenSfx" type="AudioStreamPlayer" parent="."] +unique_name_in_owner = true stream = ExtResource("2_kfxav") bus = &"game_sfx" script = ExtResource("3_cntvv") @@ -24,102 +26,142 @@ anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 -texture = ExtResource("3_db1ov") -expand_mode = 3 +theme = ExtResource("4_bk3xr") +texture = ExtResource("4_cntvv") +expand_mode = 5 stretch_mode = 5 -[node name="MarginContainer" type="MarginContainer" parent="."] +[node name="Control" type="Control" parent="BG"] +layout_mode = 1 anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 +offset_left = 26.0 +offset_top = -7.0 +offset_right = 26.0 +offset_bottom = 41.0 grow_horizontal = 2 grow_vertical = 2 -theme_override_constants/margin_left = 50 -theme_override_constants/margin_top = 50 -theme_override_constants/margin_right = 50 -theme_override_constants/margin_bottom = 50 -[node name="GridContainer" type="GridContainer" parent="MarginContainer"] +[node name="物品" type="Button" parent="BG/Control"] +unique_name_in_owner = true +z_index = 200 +layout_mode = 0 +offset_left = 92.0 +offset_top = 43.0 +offset_right = 142.0 +offset_bottom = 83.0 +theme = ExtResource("4_bk3xr") +theme_type_variation = &"tab_btn" +text = "bag_tab_日志" +flat = true + +[node name="回忆" type="Button" parent="BG/Control"] +layout_mode = 0 +offset_left = 137.0 +offset_top = 42.0 +offset_right = 187.0 +offset_bottom = 82.0 +theme = ExtResource("4_bk3xr") +theme_type_variation = &"tab_btn" +disabled = true +text = "bag_tab_记忆" +flat = true + +[node name="GridContainer" type="GridContainer" parent="BG/Control"] z_index = 10 layout_mode = 2 -columns = 4 +offset_left = 90.0 +offset_top = 73.0 +offset_right = 244.0 +offset_bottom = 293.0 +columns = 2 -[node name="GalleryItem" parent="MarginContainer/GridContainer" instance=ExtResource("2_m3ngl")] +[node name="GalleryItem" parent="BG/Control/GridContainer" instance=ExtResource("2_m3ngl")] layout_mode = 2 packed_scene = ExtResource("3_ymhcd") title = "g_偷听对话" -[node name="GalleryItem2" parent="MarginContainer/GridContainer" instance=ExtResource("2_m3ngl")] +[node name="GalleryItem2" parent="BG/Control/GridContainer" instance=ExtResource("2_m3ngl")] layout_mode = 2 packed_scene = ExtResource("7_cntvv") title = "g_疯子看井" -[node name="GalleryItem3" parent="MarginContainer/GridContainer" instance=ExtResource("2_m3ngl")] +[node name="GalleryItem3" parent="BG/Control/GridContainer" instance=ExtResource("2_m3ngl")] layout_mode = 2 packed_scene = ExtResource("3_ymhcd") title = "g_偷听对话" -[node name="GalleryItem4" parent="MarginContainer/GridContainer" instance=ExtResource("2_m3ngl")] +[node name="GalleryItem4" parent="BG/Control/GridContainer" instance=ExtResource("2_m3ngl")] layout_mode = 2 packed_scene = ExtResource("7_cntvv") title = "g_疯子看井" -[node name="GalleryItem5" parent="MarginContainer/GridContainer" instance=ExtResource("2_m3ngl")] +[node name="GalleryItem5" parent="BG/Control/GridContainer" instance=ExtResource("2_m3ngl")] layout_mode = 2 packed_scene = ExtResource("3_ymhcd") title = "g_偷听对话" -[node name="GalleryItem6" parent="MarginContainer/GridContainer" instance=ExtResource("2_m3ngl")] +[node name="GalleryItem6" parent="BG/Control/GridContainer" instance=ExtResource("2_m3ngl")] layout_mode = 2 packed_scene = ExtResource("7_cntvv") title = "g_疯子看井" -[node name="GalleryItem7" parent="MarginContainer/GridContainer" instance=ExtResource("2_m3ngl")] +[node name="GalleryItem7" parent="BG/Control/GridContainer" instance=ExtResource("2_m3ngl")] layout_mode = 2 packed_scene = ExtResource("3_ymhcd") title = "g_偷听对话" -[node name="GalleryItem8" parent="MarginContainer/GridContainer" instance=ExtResource("2_m3ngl")] +[node name="GalleryItem8" parent="BG/Control/GridContainer" instance=ExtResource("2_m3ngl")] layout_mode = 2 packed_scene = ExtResource("7_cntvv") title = "g_疯子看井" -[node name="GalleryItem9" parent="MarginContainer/GridContainer" instance=ExtResource("2_m3ngl")] +[node name="GridContainer2" type="GridContainer" parent="BG/Control"] +z_index = 10 +layout_mode = 2 +offset_left = 268.0 +offset_top = 74.0 +offset_right = 422.0 +offset_bottom = 294.0 +columns = 2 + +[node name="GalleryItem" parent="BG/Control/GridContainer2" instance=ExtResource("2_m3ngl")] layout_mode = 2 packed_scene = ExtResource("3_ymhcd") title = "g_偷听对话" -[node name="GalleryItem10" parent="MarginContainer/GridContainer" instance=ExtResource("2_m3ngl")] +[node name="GalleryItem2" parent="BG/Control/GridContainer2" instance=ExtResource("2_m3ngl")] layout_mode = 2 packed_scene = ExtResource("7_cntvv") title = "g_疯子看井" -[node name="GalleryItem11" parent="MarginContainer/GridContainer" instance=ExtResource("2_m3ngl")] +[node name="GalleryItem3" parent="BG/Control/GridContainer2" instance=ExtResource("2_m3ngl")] layout_mode = 2 packed_scene = ExtResource("3_ymhcd") title = "g_偷听对话" -[node name="GalleryItem12" parent="MarginContainer/GridContainer" instance=ExtResource("2_m3ngl")] +[node name="GalleryItem4" parent="BG/Control/GridContainer2" instance=ExtResource("2_m3ngl")] layout_mode = 2 packed_scene = ExtResource("7_cntvv") title = "g_疯子看井" -[node name="GalleryItem13" parent="MarginContainer/GridContainer" instance=ExtResource("2_m3ngl")] +[node name="GalleryItem5" parent="BG/Control/GridContainer2" instance=ExtResource("2_m3ngl")] layout_mode = 2 packed_scene = ExtResource("3_ymhcd") title = "g_偷听对话" -[node name="GalleryItem14" parent="MarginContainer/GridContainer" instance=ExtResource("2_m3ngl")] +[node name="GalleryItem6" parent="BG/Control/GridContainer2" instance=ExtResource("2_m3ngl")] layout_mode = 2 packed_scene = ExtResource("7_cntvv") title = "g_疯子看井" -[node name="GalleryItem15" parent="MarginContainer/GridContainer" instance=ExtResource("2_m3ngl")] +[node name="GalleryItem7" parent="BG/Control/GridContainer2" instance=ExtResource("2_m3ngl")] layout_mode = 2 packed_scene = ExtResource("3_ymhcd") title = "g_偷听对话" -[node name="GalleryItem16" parent="MarginContainer/GridContainer" instance=ExtResource("2_m3ngl")] +[node name="GalleryItem8" parent="BG/Control/GridContainer2" instance=ExtResource("2_m3ngl")] layout_mode = 2 packed_scene = ExtResource("7_cntvv") title = "g_疯子看井" diff --git a/scene/gallery/gallery_item.gd b/scene/gallery/gallery_item.gd index 2b537b54..299980c2 100644 --- a/scene/gallery/gallery_item.gd +++ b/scene/gallery/gallery_item.gd @@ -43,9 +43,9 @@ func _reload_scene(add_to_card:=true): current_scene = packed_scene.instantiate() if add_to_card: scene_holder.add_child(current_scene) - current_scene.scale = Vector2.ONE / 6.0 + current_scene.scale = Vector2.ONE * 0.125 # 1/8 # 防止看到上边缘黑边 - current_scene.position = Vector2(0, -7) + current_scene.position = Vector2(0, -4.75) func _on_toggle_hover(focus: bool): diff --git a/scene/gallery/gallery_item.tscn b/scene/gallery/gallery_item.tscn index c27872d6..5a251592 100644 --- a/scene/gallery/gallery_item.tscn +++ b/scene/gallery/gallery_item.tscn @@ -1,22 +1,23 @@ [gd_scene load_steps=4 format=3 uid="uid://du6jt6ae5ulvy"] -[ext_resource type="Theme" uid="uid://ro8r1wa1bvua" path="res://config/gallery_theme.tres" id="1_2f468"] +[ext_resource type="Theme" uid="uid://ro8r1wa1bvua" path="res://config/gallery_item_theme.tres" id="1_2f468"] [ext_resource type="Script" uid="uid://bk8ton7q8i6hb" path="res://scene/gallery/gallery_item.gd" id="1_2q576"] [ext_resource type="Texture2D" uid="uid://cbql1i4hblmt1" path="res://asset/art/ui/prop/特写通用遮罩.png" id="3_wb2ol"] [node name="GalleryItem" type="PanelContainer"] -offset_right = 96.0 -offset_bottom = 56.0 +offset_right = 75.0 +offset_bottom = 46.0 mouse_filter = 1 theme = ExtResource("1_2f468") script = ExtResource("1_2q576") [node name="VBox" type="VBoxContainer" parent="."] layout_mode = 2 +theme_override_constants/separation = 0 [node name="SceneButton" type="Button" parent="VBox"] unique_name_in_owner = true -custom_minimum_size = Vector2(96, 41) +custom_minimum_size = Vector2(75.5, 37) layout_mode = 2 [node name="SceneHolder" type="Control" parent="VBox/SceneButton"] @@ -24,17 +25,19 @@ unique_name_in_owner = true show_behind_parent = true clip_children = 1 clip_contents = true +custom_minimum_size = Vector2(70.5, 30) anchors_preset = 0 -offset_left = 1.0 -offset_top = 1.0 -offset_right = 95.0 -offset_bottom = 40.0 +offset_left = 2.5 +offset_top = 2.5 +offset_right = 73.0 +offset_bottom = 32.5 mouse_filter = 2 [node name="Title" type="Label" parent="VBox"] unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 4 +text = "title" [node name="DisplayLayer" type="CanvasLayer" parent="VBox"] unique_name_in_owner = true diff --git a/scene/prop/prop_bag.gd b/scene/prop/prop_bag.gd index e72baa66..1a42f339 100644 --- a/scene/prop/prop_bag.gd +++ b/scene/prop/prop_bag.gd @@ -1,4 +1,4 @@ -extends Panel +extends CanvasLayer @onready var buttons_vbox = %ButtonsVBox as VBoxContainer @onready var texture_rect = %TextureRect as TextureRect @@ -6,10 +6,17 @@ extends Panel func _ready(): - get_parent().layer = GlobalConfig.CANVAS_LAYER_BAG + layer = GlobalConfig.CANVAS_LAYER_BAG SceneManager.toggle_pause_counter(true) _load_item_buttons() - $OpenBagSfx.play() + %OpenBagSfx.play() + %"回忆".pressed.connect(_on_tab_pressed) + + +func _on_tab_pressed(): + SceneManager.toggle_pause_counter(false) + SceneManager.show_gallery() + queue_free() func _load_item_buttons() -> void: @@ -41,7 +48,6 @@ func _load_item_buttons() -> void: # # _display_item(inventory.important_items[0]) - func _display_item(prop_key, button): var hud = SceneManager.get_prop_hud() if not hud: diff --git a/scene/prop/prop_bag.tscn b/scene/prop/prop_bag.tscn index 16724f92..fa993ffb 100644 --- a/scene/prop/prop_bag.tscn +++ b/scene/prop/prop_bag.tscn @@ -1,6 +1,7 @@ -[gd_scene load_steps=8 format=3 uid="uid://b6gbolo1o7wdf"] +[gd_scene load_steps=9 format=3 uid="uid://b6gbolo1o7wdf"] [ext_resource type="Script" uid="uid://cg7wdaw03bovq" path="res://scene/prop/prop_bag.gd" id="1_f3hpu"] +[ext_resource type="Theme" uid="uid://ro8r1wa1bvua" path="res://config/gallery_item_theme.tres" id="1_rvhvk"] [ext_resource type="Texture2D" uid="uid://dsj3l0baqg1g7" path="res://asset/art/ui/小蝶笔记.png" id="2_3s314"] [ext_resource type="AudioStream" uid="uid://dyjifofhdx25w" path="res://asset/audio/sfx/交互/打开背包.wav" id="2_xo6jf"] [ext_resource type="PackedScene" uid="uid://wxd25ec3cqyy" path="res://scene/prop/prop_bag_button.tscn" id="3_wlvs1"] @@ -13,17 +14,19 @@ bg_color = Color(0.6, 0.6, 0.6, 0) [node name="PropBag" type="CanvasLayer"] process_mode = 3 +script = ExtResource("1_f3hpu") -[node name="Bag" type="Panel" parent="."] +[node name="OpenBagSfx" type="AudioStreamPlayer" parent="."] +unique_name_in_owner = true +stream = ExtResource("2_xo6jf") + +[node name="Bag" type="Control" parent="."] +layout_mode = 3 anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 -script = ExtResource("1_f3hpu") - -[node name="OpenBagSfx" type="AudioStreamPlayer" parent="Bag"] -stream = ExtResource("2_xo6jf") [node name="TextureRect" type="TextureRect" parent="Bag"] layout_mode = 1 @@ -39,6 +42,30 @@ texture = ExtResource("2_3s314") expand_mode = 5 stretch_mode = 2 +[node name="物品" type="Button" parent="Bag"] +z_index = 100 +offset_left = 112.0 +offset_top = 39.0 +offset_right = 162.0 +offset_bottom = 79.0 +theme = ExtResource("1_rvhvk") +theme_type_variation = &"tab_btn" +disabled = true +text = "bag_tab_日志" +flat = true + +[node name="回忆" type="Button" parent="Bag"] +unique_name_in_owner = true +z_index = 200 +offset_left = 157.0 +offset_top = 38.0 +offset_right = 207.0 +offset_bottom = 78.0 +theme = ExtResource("1_rvhvk") +theme_type_variation = &"tab_btn" +text = "bag_tab_记忆" +flat = true + [node name="ScrollContainer" type="ScrollContainer" parent="Bag"] custom_minimum_size = Vector2(120, 160) layout_mode = 1 @@ -75,18 +102,19 @@ text = "示例按钮" [node name="DisplayVBox" type="VBoxContainer" parent="Bag"] layout_mode = 0 offset_left = 300.0 -offset_top = 64.0 +offset_top = 61.0 offset_right = 440.0 -offset_bottom = 248.0 +offset_bottom = 255.0 [node name="TextureRect" type="TextureRect" parent="Bag/DisplayVBox"] unique_name_in_owner = true custom_minimum_size = Vector2(100, 100) layout_mode = 2 size_flags_horizontal = 4 -size_flags_vertical = 4 +size_flags_vertical = 0 texture = ExtResource("4_wlvs1") -expand_mode = 3 +expand_mode = 5 +stretch_mode = 5 [node name="Content" type="TextEdit" parent="Bag/DisplayVBox"] unique_name_in_owner = true diff --git a/scene/settings/settings.tscn b/scene/settings/settings.tscn index b99cfa0b..897768f4 100644 --- a/scene/settings/settings.tscn +++ b/scene/settings/settings.tscn @@ -252,4 +252,4 @@ focus_neighbor_left = NodePath("../DiaryBtn") focus_neighbor_top = NodePath("../../../HBoxContainer3/ExitBtn") focus_next = NodePath("../../../HBoxContainer/HSliderMasterBus") focus_previous = NodePath("../DiaryBtn") -text = "setting_画册" +text = "setting_记忆"