1
1
mirror of https://github.com/Rundll86/Dog-Lynx-And-HCN.git synced 2026-06-25 04:52:29 +08:00

feat(UI): 添加物品收集显示功能

- 新增CameraManager脚本用于相机管理
- 在UI场景中添加物品收集容器VBoxContainer
- 扩展ItemShow类支持生成物品显示实例
- 修改EntityBase添加物品收集信号和处理逻辑
- 调整BossBar位置和布局属性
This commit is contained in:
2025-08-28 06:49:50 +08:00
parent bf64114633
commit a29be1e431
7 changed files with 36 additions and 6 deletions
+15
View File
@@ -118,3 +118,18 @@ text = "100.0"
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 5)
layout_mode = 2
[node name="itemCollect" type="VBoxContainer" parent="root"]
unique_name_in_owner = true
layout_mode = 1
anchors_preset = -1
anchor_left = 0.05
anchor_top = 0.85
anchor_right = 0.15
anchor_bottom = 0.95
offset_left = 0.399998
offset_top = 45.2
offset_right = -80.8
offset_bottom = 0.400024
grow_vertical = 0
theme_override_constants/separation = 10
+3 -1
View File
@@ -1,8 +1,9 @@
[gd_scene load_steps=5 format=3 uid="uid://dmxi1ikn6avig"]
[gd_scene load_steps=6 format=3 uid="uid://dmxi1ikn6avig"]
[ext_resource type="Script" path="res://scripts/Tools/WorldManager.gd" id="1_lxsxj"]
[ext_resource type="PackedScene" uid="uid://dfwg750a47ggx" path="res://components/Scenes/UI.tscn" id="2_04cdd"]
[ext_resource type="PackedScene" uid="uid://bm7ymrri6pykb" path="res://components/Characters/Rooster.tscn" id="3_5ui6q"]
[ext_resource type="Script" path="res://scripts/Tools/CameraManager.gd" id="5_mk7bv"]
[ext_resource type="Texture2D" uid="uid://ckk8kahhof06u" path="res://resources/maps/Castle 2.png" id="6_p0nkj"]
[node name="world" type="Node2D"]
@@ -24,3 +25,4 @@ process_mode = 3
position = Vector2(0, -100)
process_callback = 0
position_smoothing_enabled = true
script = ExtResource("5_mk7bv")
+2 -5
View File
@@ -27,9 +27,9 @@ anchor_left = 0.2
anchor_top = 1.0
anchor_right = 0.8
anchor_bottom = 1.0
offset_top = -40.0
offset_top = -65.0
offset_right = 0.0
offset_bottom = -20.0
offset_bottom = -40.0
grow_horizontal = 2
grow_vertical = 0
@@ -48,19 +48,16 @@ layout_mode = 2
[node name="name" type="Label" parent="health/panel/label"]
unique_name_in_owner = true
layout_mode = 2
size_flags_vertical = 8
text = "BossName"
label_settings = SubResource("LabelSettings_esyuk")
[node name="value" type="Label" parent="health/panel/label"]
unique_name_in_owner = true
layout_mode = 2
size_flags_vertical = 8
text = "percent"
label_settings = SubResource("LabelSettings_esyuk")
[node name="percent" type="Label" parent="health/panel/label"]
layout_mode = 2
size_flags_vertical = 8
text = "%"
label_settings = SubResource("LabelSettings_esyuk")
+7
View File
@@ -7,6 +7,8 @@ signal healthChanged(health: float)
signal energyChanged(energy: float)
signal itemCollected(itemType: ItemStore.ItemType, amount: int)
var fields = {
FieldStore.Entity.MAX_HEALTH: 100,
FieldStore.Entity.DAMAGE_MULTIPILER: 1,
@@ -72,6 +74,7 @@ func _ready():
if body is ItemDropped:
inventory[body.item] += body.stackCount
playSound("collect")
itemCollected.emit(body.item, body.stackCount)
body.queue_free()
)
energyChanged.connect(
@@ -79,6 +82,10 @@ func _ready():
UIState.energyPercent.maxValue = fields.get(FieldStore.Entity.MAX_ENERGY)
UIState.energyPercent.setCurrent(newEnergy)
)
itemCollected.connect(
func(itemType, amount):
UIState.itemCollect.add_child(ItemShow.generate(itemType, amount))
)
else:
currentFocusedBoss = get_tree().get_nodes_in_group("players")[0]
healthChanged.emit(health)
+6
View File
@@ -11,3 +11,9 @@ class_name ItemShow
func _physics_process(_delta):
avatarTexture.texture = ItemStore.getTexture(type)
countLabel.text = str(count)
static func generate(itemType: ItemStore.ItemType, itemCount: int = 1):
var item = preload("res://components/UI/ItemShow.tscn").instantiate()
item.type = itemType
item.count = itemCount
return item
+2
View File
@@ -13,11 +13,13 @@ static var bossbar: EntityStateBar
static var currentPanel: FullscreenPanelBase = null
static var panels: Control
static var energyPercent: ColorBar
static var itemCollect: VBoxContainer
func _ready():
bossbar = $"%bossbar"
panels = $"%panels"
energyPercent = $"%percent"
itemCollect = $"%itemCollect"
func _process(_delta):
bossbar.visible = !!bossbar.entity
func _physics_process(_delta):
+1
View File
@@ -0,0 +1 @@
extends Camera2D