1
1
mirror of https://github.com/Rundll86/Dog-Lynx-And-HCN.git synced 2026-05-28 06:51:54 +08:00

feat(UI): 添加提示框组件及显示功能

实现提示框组件TipBox,包含显示和隐藏动画效果
在UIState中添加showTip方法用于显示提示信息
更新UI场景以包含提示框容器
This commit is contained in:
2026-01-24 15:43:53 +08:00
parent 19384e1c50
commit 6be95a5658
5 changed files with 174 additions and 18 deletions
+24
View File
@@ -0,0 +1,24 @@
@tool
extends PanelContainer
class_name TipBox
@export var text: String = "nothing"
@onready var label: Label = $%label
@onready var animator: AnimationPlayer = $%animator
func _ready():
label.text = text
animator.play("show")
func _process(_delta):
label.text = text
func destroy():
animator.play("hide")
await animator.animation_finished
queue_free()
static func create(applyText: String) -> TipBox:
var box = ComponentManager.getUIComponent("TipBox")
box.text = applyText
return box
+1
View File
@@ -0,0 +1 @@
uid://c1gqcwr6say6f
+20 -11
View File
@@ -1,24 +1,25 @@
extends CanvasLayer
class_name UIState
@onready var items = $"%items"
@onready var fields: VBoxContainer = $"%fields"
@onready var fieldsAnimator: AnimationPlayer = $"%fieldsAnimator"
static var player: EntityBase = null
static var items: PanelContainer
static var fields: VBoxContainer
static var fieldsAnimator: AnimationPlayer
static var player: EntityBase
static var bossbar: EntityStateBar
static var currentPanel: FullscreenPanelBase = null
static var currentPanel: FullscreenPanelBase
static var panels: Control
static var energyPercent: ColorBar
static var itemCollect: VBoxContainer
static var skillIconContainer: VBoxContainer
static var tips: VBoxContainer
func _ready():
bossbar = $"%bossbar"
panels = $"%panels"
energyPercent = $"%percent"
itemCollect = $"%itemCollect"
skillIconContainer = $"%skillContainer"
bossbar = $%bossbar
panels = $%panels
energyPercent = $%percent
itemCollect = $%itemCollect
skillIconContainer = $%skillContainer
tips = $%tips
setPanel("Starter")
func _process(_delta):
bossbar.visible = !!bossbar.entity
@@ -70,3 +71,11 @@ static func setPanel(targetName: String = "", args: Array = []):
panel.hidePanel()
static func closeCurrentPanel():
setPanel()
static func showTip(text: String, destroyAfter: float = -1):
var box = TipBox.create(text)
tips.add_child(box)
if destroyAfter > 0:
await TickTool.millseconds(destroyAfter * 1000)
box.destroy()
else:
return box