fix: 修复交互与通知板问题

- 修复Z轴逻辑调整精灵与物品的排序
- 渲染前强制 content_container.modulate.a = 1.0,避免内容区被透明度状态卡住导致看起来空白
This commit is contained in:
2026-02-07 21:07:59 +08:00
parent 19794d896e
commit f24a01dbca
8 changed files with 29 additions and 32 deletions

View File

@@ -11,4 +11,4 @@ texture = ExtResource("1_jrtph")
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."]
position = Vector2(152, 16)
polygon = PackedVector2Array(-456, -48, -192, -48, -192, -112, -120, -112, -120, -56, 168, -48, 168, -696, -472, -688, -472, -48)
polygon = PackedVector2Array(-456, -48, -192, -48, -192, -72, -152, -72, -120, -72, -120, -56, 168, -48, 168, -696, -472, -688, -472, -48)

View File

@@ -1079,15 +1079,11 @@ tile_set = SubResource("TileSet_0xqio")
z_index = -1
position = Vector2(0, 320)
[node name="NoticeBoard" parent="." instance=ExtResource("16_rixdf")]
z_index = 1
position = Vector2(-184, -76)
[node name="NPC" parent="." instance=ExtResource("15_0xqio")]
position = Vector2(-81, -64)
[node name="WelcomeBoard" parent="." instance=ExtResource("16_edt5w")]
z_index = 1
y_sort_enabled = true
position = Vector2(128, -80)
script = ExtResource("16_u1t8b")
[node name="DataWhaleHome" parent="." instance=ExtResource("16_m4als")]
position = Vector2(8, -128)
[node name="DefaultSpawn" type="Marker2D" parent="."]
y_sort_enabled = true
@@ -1097,14 +1093,8 @@ position = Vector2(647, 500)
y_sort_enabled = true
position = Vector2(648, 24)
[node name="NPC" parent="." instance=ExtResource("15_0xqio")]
position = Vector2(-81, -64)
[node name="DataWhaleHome" parent="." instance=ExtResource("16_m4als")]
position = Vector2(8, -128)
[node name="DoorArea" type="Area2D" parent="."]
position = Vector2(0, 5)
position = Vector2(2, 14)
script = ExtResource("18_0xqio")
target_scene_name = "room"
target_spawn_name = "FromSquare"
@@ -1114,8 +1104,17 @@ position = Vector2(644, -62.5)
shape = SubResource("RectangleShape2D_edt5w")
[node name="Community" parent="." instance=ExtResource("16_0xqio")]
y_sort_enabled = true
position = Vector2(646, 3)
[node name="NoticeBoard" parent="." instance=ExtResource("16_rixdf")]
position = Vector2(-216, -72)
[node name="WelcomeBoard" parent="." instance=ExtResource("16_edt5w")]
y_sort_enabled = true
position = Vector2(128, -80)
script = ExtResource("16_u1t8b")
[node name="Boundaries" type="Node2D" parent="."]
[node name="StaticBody2D" type="StaticBody2D" parent="Boundaries"]

View File

@@ -3,7 +3,7 @@ extends StaticBody2D
func interact():
# Check if dialog already exists
if get_tree().root.has_node("NoticeDialog"):
return
return null
var dialog = preload("res://scenes/ui/notice_dialog.tscn").instantiate()
dialog.name = "NoticeDialog"

View File

@@ -4,7 +4,7 @@
[ext_resource type="Texture2D" uid="uid://b4aildrnhbpl4" path="res://assets/materials/NoticeBoard.png" id="2_sprite"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_nb"]
size = Vector2(160, 53.333332)
size = Vector2(160, 40)
[node name="NoticeBoard" type="StaticBody2D"]
scale = Vector2(0.6, 0.6)
@@ -16,5 +16,5 @@ scale = Vector2(0.5, 0.5)
texture = ExtResource("2_sprite")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(0, 13.333335)
position = Vector2(0, 6.6666665)
shape = SubResource("RectangleShape2D_nb")

View File

@@ -3,7 +3,7 @@
[ext_resource type="Texture2D" uid="uid://v7loa3smfkrd" path="res://assets/materials/WelcomeBoard.png" id="2_sprite"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_board"]
size = Vector2(112, 26.5)
size = Vector2(112, 18.5)
[node name="WelcomeBoard" type="StaticBody2D"]
collision_layer = 3
@@ -13,5 +13,5 @@ scale = Vector2(0.25, 0.25)
texture = ExtResource("2_sprite")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(0, 18.75)
position = Vector2(0, 14.75)
shape = SubResource("RectangleShape2D_board")

View File

@@ -44,13 +44,10 @@ func _ready():
prev_btn.pressed.connect(_on_prev_pressed)
next_btn.pressed.connect(_on_next_pressed)
# Network Integration - Use direct callback for better error handling
# Short timeout (2.0s) so mock data appears quickly if server is down
NetworkManager.get_request("/notices", _on_notices_response, 2.0)
# Initial Setup (with generic "Loading" state)
# Local-only setup: use built-in pages directly, no network dependency.
mock_pages = pages.duplicate(true)
pages = [{"text": "[center]Loading notices...[/center]", "image_color": Color(0.9, 0.9, 0.9)}]
current_page = 0
content_container.modulate.a = 1.0
_setup_dots()
_update_ui(false)
@@ -73,7 +70,8 @@ func _on_notices_response(success: bool, data: Dictionary, _error_info: Dictiona
current_page = 0
_setup_dots()
_update_ui(true)
content_container.modulate.a = 1.0
_update_ui(false)
func _setup_dots():

View File

@@ -1,6 +1,6 @@
[gd_scene load_steps=3 format=3 uid="uid://rdmro1jxs6ga"]
[ext_resource type="Script" uid="uid://c227m0okmjt2t" path="res://scenes/prefabs/ui/NoticeDialog.gd" id="1_script"]
[ext_resource type="Script" uid="uid://c227m0okmjt2t" path="res://scenes/ui/NoticeDialog.gd" id="1_script"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_rounded"]
bg_color = Color(0.95, 0.95, 0.95, 1)

View File

@@ -1,6 +1,6 @@
[gd_scene load_steps=5 format=3 uid="uid://d8mam0n1a3b5"]
[ext_resource type="Script" uid="uid://cohijfo0yeo34" path="res://scenes/ui/WelcomeDialog.gd" id="1_vs5b1"]
[ext_resource type="Script" uid="uid://cohijfo0yeo34" path="res://scenes/prefabs/ui/WelcomeDialog.gd" id="1_vs5b1"]
[ext_resource type="Texture2D" uid="uid://v7loa3smfkrd" path="res://assets/materials/WelcomeBoard.png" id="2_dy5hw"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_card"]