1
1
mirror of https://github.com/Rundll86/Dog-Lynx-And-HCN.git synced 2026-06-25 13:02: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
+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):