mirror of
https://github.com/Rundll86/Dog-Lynx-And-HCN.git
synced 2026-05-27 22:41:56 +08:00
feat(WeaponCard): 添加升华按钮动画效果
- 为升华按钮添加开合动画效果 - 更新TextSwitchButton以支持动态文本切换 - 在Weapon.gd中添加动画播放逻辑
This commit is contained in:
@@ -65,6 +65,128 @@ corner_radius_top_left = 15
|
||||
corner_radius_bottom_right = 15
|
||||
corner_detail = 1
|
||||
|
||||
[sub_resource type="Animation" id="Animation_75t4v"]
|
||||
length = 0.001
|
||||
tracks/0/type = "bezier"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("container/anchor/climatePanel:scale:x")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"handle_modes": PackedInt32Array(0),
|
||||
"points": PackedFloat32Array(0, -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("container/anchor/climatePanel:scale:y")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"handle_modes": PackedInt32Array(0),
|
||||
"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0),
|
||||
"times": PackedFloat32Array(0)
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("container/anchor/climatePanel:modulate")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 0)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_mjvvk"]
|
||||
resource_name = "openSub"
|
||||
length = 0.25
|
||||
step = 0.05
|
||||
tracks/0/type = "bezier"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("container/anchor/climatePanel: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, 0, 0, 0, 0, 0, 0),
|
||||
"times": PackedFloat32Array(0, 0.25)
|
||||
}
|
||||
tracks/1/type = "bezier"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("container/anchor/climatePanel:scale:y")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"handle_modes": PackedInt32Array(0, 0),
|
||||
"points": PackedFloat32Array(1, -0.25, 0, 0, 0, 0, 0, 0, 0, 0),
|
||||
"times": PackedFloat32Array(0, 0.25)
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("container/anchor/climatePanel:modulate")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0, 0.25),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_sbvs2"]
|
||||
resource_name = "openSub"
|
||||
length = 0.25
|
||||
step = 0.05
|
||||
tracks/0/type = "bezier"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("container/anchor/climatePanel:scale:x")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"handle_modes": PackedInt32Array(0, 0),
|
||||
"points": PackedFloat32Array(0, 0, 0, 0, 0, 1, -0.25, 0, 0, 0),
|
||||
"times": PackedFloat32Array(0, 0.25)
|
||||
}
|
||||
tracks/1/type = "bezier"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("container/anchor/climatePanel:scale:y")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"handle_modes": PackedInt32Array(0, 0),
|
||||
"points": PackedFloat32Array(0, 0, 0, 0, 0, 1, -0.25, 0, 0, 0),
|
||||
"times": PackedFloat32Array(0, 0.25)
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("container/anchor/climatePanel:modulate")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0, 0.25),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_mjvvk"]
|
||||
_data = {
|
||||
&"RESET": SubResource("Animation_75t4v"),
|
||||
&"closeSub": SubResource("Animation_mjvvk"),
|
||||
&"openSub": SubResource("Animation_sbvs2")
|
||||
}
|
||||
|
||||
[node name="WeaponCard" type="PanelContainer" unique_id=2085048785]
|
||||
offset_right = 350.0
|
||||
offset_bottom = 304.0
|
||||
@@ -89,12 +211,14 @@ alignment = 1
|
||||
layout_mode = 2
|
||||
|
||||
[node name="climatePanel" type="PanelContainer" parent="container/anchor" unique_id=653448699]
|
||||
modulate = Color(1, 1, 1, 0)
|
||||
layout_mode = 1
|
||||
anchors_preset = -1
|
||||
anchor_left = 1.15
|
||||
anchor_right = 1.15
|
||||
offset_right = 40.0
|
||||
offset_bottom = 40.0
|
||||
offset_right = 92.0
|
||||
offset_bottom = 79.0
|
||||
scale = Vector2(1e-05, 1e-05)
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_mjvvk")
|
||||
|
||||
[node name="wrapper" type="VBoxContainer" parent="container/anchor/climatePanel" unique_id=1097849201]
|
||||
@@ -148,7 +272,7 @@ alignment = 2
|
||||
layout_mode = 2
|
||||
theme = ExtResource("2_fwkd3")
|
||||
|
||||
[node name="climateBtn" type="Button" parent="container/wrapper" unique_id=390423731]
|
||||
[node name="sublimateBtn" type="Button" parent="container/wrapper" unique_id=390423731]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
theme = ExtResource("2_fwkd3")
|
||||
@@ -305,3 +429,7 @@ unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
text = "→"
|
||||
|
||||
[node name="animator" type="AnimationPlayer" parent="." unique_id=900403095]
|
||||
unique_name_in_owner = true
|
||||
libraries/ = SubResource("AnimationLibrary_mjvvk")
|
||||
|
||||
@@ -6,8 +6,9 @@ class_name TextSwitchButton
|
||||
@export var unpressedText: String = "未按下"
|
||||
|
||||
func _ready():
|
||||
updateText()
|
||||
toggled.connect(updateText)
|
||||
updateText(button_pressed)
|
||||
toggle_mode = true
|
||||
toggled.connect(func(on: bool): updateText(on))
|
||||
|
||||
func updateText():
|
||||
text = [unpressedText, pressedText][int(button_pressed)]
|
||||
func updateText(on: bool):
|
||||
text = [unpressedText, pressedText][int(on)]
|
||||
|
||||
@@ -41,6 +41,7 @@ enum EmitType {
|
||||
@onready var sounds: Node2D = $%sounds
|
||||
@onready var moveLeftBtn: Button = $%moveleft
|
||||
@onready var moveRightBtn: Button = $%moveright
|
||||
@onready var animator: AnimationPlayer = $%animator
|
||||
|
||||
@onready var autoUpdateBtn: Button = $%autoUpdateBtn
|
||||
@onready var onceUpdateBtn: Button = $%onceUpdateBtn
|
||||
@@ -48,6 +49,7 @@ enum EmitType {
|
||||
@onready var extractBtn: Button = $%extractBtn
|
||||
@onready var inlayBtn: Button = $%inlayBtn
|
||||
|
||||
@onready var sublimateBtn: Button = $%sublimateBtn
|
||||
@onready var sublimateOptionsBox: Control = $%sublimateOptions
|
||||
|
||||
var cooldownTimer: CooldownTimer = null
|
||||
@@ -63,6 +65,13 @@ func _ready():
|
||||
cooldownTimer = CooldownTimer.new()
|
||||
cooldownTimer.cooldown = cooldown
|
||||
originalStore = store
|
||||
sublimateBtn.toggled.connect(
|
||||
func(on: bool):
|
||||
if on:
|
||||
animator.play("openSub")
|
||||
else:
|
||||
animator.play("closeSub")
|
||||
)
|
||||
autoUpdateBtn.toggled.connect(
|
||||
func(on: bool):
|
||||
autoUpdate = on
|
||||
|
||||
Reference in New Issue
Block a user