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:
@@ -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
|
||||
@@ -0,0 +1 @@
|
||||
uid://c1gqcwr6say6f
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user