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

feat(ItemShow): 添加自动隐藏动画功能

添加autoFree选项和动画播放逻辑,当autoFree为true时自动播放隐藏动画并释放节点
This commit is contained in:
2025-08-28 06:54:08 +08:00
parent a29be1e431
commit ac809194e7
2 changed files with 73 additions and 1 deletions
+66 -1
View File
@@ -1,9 +1,68 @@
[gd_scene load_steps=3 format=3 uid="uid://bbm8l3hr4ihar"]
[gd_scene load_steps=6 format=3 uid="uid://bbm8l3hr4ihar"]
[ext_resource type="Script" path="res://scripts/Statemachine/ItemShow.gd" id="1_2dhsb"]
[ext_resource type="Texture2D" uid="uid://bks8jmctleina" path="res://resources/items/baseball.svg" id="1_hyowb"]
[sub_resource type="Animation" id="Animation_ltvf2"]
resource_name = "hide"
length = 0.5
tracks/0/type = "bezier"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:scale:x")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"handle_modes": PackedInt32Array(0, 0),
"points": PackedFloat32Array(1, -0.25, 0, 0.25, 0, 1e-05, -0.25, 0, 0.25, 0),
"times": PackedFloat32Array(0, 0.5)
}
tracks/1/type = "bezier"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath(".:modulate:a")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"handle_modes": PackedInt32Array(0, 0),
"points": PackedFloat32Array(1, -0.25, 0, 0.25, 0, 0, -0.25, 0, 0.25, 0),
"times": PackedFloat32Array(0, 0.5)
}
[sub_resource type="Animation" id="Animation_6sxrr"]
length = 0.001
tracks/0/type = "bezier"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:scale:x")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"handle_modes": PackedInt32Array(0),
"points": PackedFloat32Array(1, -0.25, 0, 0.25, 0),
"times": PackedFloat32Array(0)
}
tracks/1/type = "bezier"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath(".:modulate:a")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"handle_modes": PackedInt32Array(0),
"points": PackedFloat32Array(1, -0.25, 0, 0.25, 0),
"times": PackedFloat32Array(0)
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_xbbtb"]
_data = {
"RESET": SubResource("Animation_6sxrr"),
"hide": SubResource("Animation_ltvf2")
}
[node name="ItemShow" type="HBoxContainer"]
offset_right = 34.0
offset_bottom = 20.0
size_flags_horizontal = 6
size_flags_vertical = 6
script = ExtResource("1_2dhsb")
@@ -23,3 +82,9 @@ layout_mode = 2
size_flags_horizontal = 0
size_flags_vertical = 8
text = "0"
[node name="animator" type="AnimationPlayer" parent="."]
unique_name_in_owner = true
libraries = {
"": SubResource("AnimationLibrary_xbbtb")
}
+7
View File
@@ -4,10 +4,17 @@ class_name ItemShow
@export var type: ItemStore.ItemType = ItemStore.ItemType.BASEBALL
@export var count: int = 0
@export var autoFree: bool = false
@onready var avatarTexture: TextureRect = $"%avatar"
@onready var countLabel: Label = $"%count"
@onready var animator: AnimationPlayer = $"%animator"
func _ready():
if autoFree:
animator.play("hide")
await animator.animation_finished
queue_free()
func _physics_process(_delta):
avatarTexture.texture = ItemStore.getTexture(type)
countLabel.text = str(count)