30 lines
789 B
GDScript
30 lines
789 B
GDScript
extends AnimatedSprite2D
|
|
|
|
@export var fade_in: bool = false
|
|
@export var next_animation: String = ""
|
|
|
|
|
|
func _ready() -> void:
|
|
visible = false
|
|
frame = 0
|
|
# 结束后播放下一个动画
|
|
if next_animation != "":
|
|
animation_finished.connect(_on_animation_finished, CONNECT_ONE_SHOT)
|
|
sprite_frames.set_animation_loop(animation, false)
|
|
var area2d = $Area2D as Area2D
|
|
if area2d:
|
|
area2d.monitoring = true
|
|
area2d.body_entered.connect(_on_body_entered, CONNECT_ONE_SHOT)
|
|
|
|
func _on_animation_finished() -> void:
|
|
if next_animation != "":
|
|
play(next_animation)
|
|
|
|
func _on_body_entered(_node: Node) -> void:
|
|
visible = true
|
|
if fade_in:
|
|
var tween = create_tween()
|
|
# 透明度逐渐变为 1
|
|
tween.tween_property(self, "modulate:a", 1.0, 2.5).from(0.0)
|
|
# 播放动画
|
|
play(animation) |