mirror of
https://github.com/Rundll86/Dog-Lynx-And-HCN.git
synced 2026-06-09 13:17:12 +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_radius_bottom_right = 15
|
||||||
corner_detail = 1
|
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]
|
[node name="WeaponCard" type="PanelContainer" unique_id=2085048785]
|
||||||
offset_right = 350.0
|
offset_right = 350.0
|
||||||
offset_bottom = 304.0
|
offset_bottom = 304.0
|
||||||
@@ -89,12 +211,14 @@ alignment = 1
|
|||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
||||||
[node name="climatePanel" type="PanelContainer" parent="container/anchor" unique_id=653448699]
|
[node name="climatePanel" type="PanelContainer" parent="container/anchor" unique_id=653448699]
|
||||||
|
modulate = Color(1, 1, 1, 0)
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
anchors_preset = -1
|
anchors_preset = -1
|
||||||
anchor_left = 1.15
|
anchor_left = 1.15
|
||||||
anchor_right = 1.15
|
anchor_right = 1.15
|
||||||
offset_right = 40.0
|
offset_right = 92.0
|
||||||
offset_bottom = 40.0
|
offset_bottom = 79.0
|
||||||
|
scale = Vector2(1e-05, 1e-05)
|
||||||
theme_override_styles/panel = SubResource("StyleBoxFlat_mjvvk")
|
theme_override_styles/panel = SubResource("StyleBoxFlat_mjvvk")
|
||||||
|
|
||||||
[node name="wrapper" type="VBoxContainer" parent="container/anchor/climatePanel" unique_id=1097849201]
|
[node name="wrapper" type="VBoxContainer" parent="container/anchor/climatePanel" unique_id=1097849201]
|
||||||
@@ -148,7 +272,7 @@ alignment = 2
|
|||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
theme = ExtResource("2_fwkd3")
|
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
|
unique_name_in_owner = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
theme = ExtResource("2_fwkd3")
|
theme = ExtResource("2_fwkd3")
|
||||||
@@ -305,3 +429,7 @@ unique_name_in_owner = true
|
|||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_horizontal = 3
|
size_flags_horizontal = 3
|
||||||
text = "→"
|
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 = "未按下"
|
@export var unpressedText: String = "未按下"
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
updateText()
|
updateText(button_pressed)
|
||||||
toggled.connect(updateText)
|
toggle_mode = true
|
||||||
|
toggled.connect(func(on: bool): updateText(on))
|
||||||
|
|
||||||
func updateText():
|
func updateText(on: bool):
|
||||||
text = [unpressedText, pressedText][int(button_pressed)]
|
text = [unpressedText, pressedText][int(on)]
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ enum EmitType {
|
|||||||
@onready var sounds: Node2D = $%sounds
|
@onready var sounds: Node2D = $%sounds
|
||||||
@onready var moveLeftBtn: Button = $%moveleft
|
@onready var moveLeftBtn: Button = $%moveleft
|
||||||
@onready var moveRightBtn: Button = $%moveright
|
@onready var moveRightBtn: Button = $%moveright
|
||||||
|
@onready var animator: AnimationPlayer = $%animator
|
||||||
|
|
||||||
@onready var autoUpdateBtn: Button = $%autoUpdateBtn
|
@onready var autoUpdateBtn: Button = $%autoUpdateBtn
|
||||||
@onready var onceUpdateBtn: Button = $%onceUpdateBtn
|
@onready var onceUpdateBtn: Button = $%onceUpdateBtn
|
||||||
@@ -48,6 +49,7 @@ enum EmitType {
|
|||||||
@onready var extractBtn: Button = $%extractBtn
|
@onready var extractBtn: Button = $%extractBtn
|
||||||
@onready var inlayBtn: Button = $%inlayBtn
|
@onready var inlayBtn: Button = $%inlayBtn
|
||||||
|
|
||||||
|
@onready var sublimateBtn: Button = $%sublimateBtn
|
||||||
@onready var sublimateOptionsBox: Control = $%sublimateOptions
|
@onready var sublimateOptionsBox: Control = $%sublimateOptions
|
||||||
|
|
||||||
var cooldownTimer: CooldownTimer = null
|
var cooldownTimer: CooldownTimer = null
|
||||||
@@ -63,6 +65,13 @@ func _ready():
|
|||||||
cooldownTimer = CooldownTimer.new()
|
cooldownTimer = CooldownTimer.new()
|
||||||
cooldownTimer.cooldown = cooldown
|
cooldownTimer.cooldown = cooldown
|
||||||
originalStore = store
|
originalStore = store
|
||||||
|
sublimateBtn.toggled.connect(
|
||||||
|
func(on: bool):
|
||||||
|
if on:
|
||||||
|
animator.play("openSub")
|
||||||
|
else:
|
||||||
|
animator.play("closeSub")
|
||||||
|
)
|
||||||
autoUpdateBtn.toggled.connect(
|
autoUpdateBtn.toggled.connect(
|
||||||
func(on: bool):
|
func(on: bool):
|
||||||
autoUpdate = on
|
autoUpdate = on
|
||||||
|
|||||||
Reference in New Issue
Block a user