34 lines
1.0 KiB
GDScript
34 lines
1.0 KiB
GDScript
extends CanvasLayer
|
|
|
|
@onready var light = $PointLight2D as PointLight2D
|
|
|
|
|
|
func _ready() -> void:
|
|
layer = GlobalConfig.CANVAS_LAYER_EFFECT
|
|
|
|
|
|
# 两轮闪烁时 visible 的 canvas items
|
|
func flash(visible_nodes_r1: Array, visible_nodes_r2: Array) -> void:
|
|
for n in visible_nodes_r1:
|
|
n.show()
|
|
n.modulate.a = 0
|
|
for n in visible_nodes_r2:
|
|
n.show()
|
|
n.modulate.a = 0
|
|
light.energy = 0
|
|
var tween = create_tween()
|
|
tween.tween_property(light, "energy", 7.0, 0.1)
|
|
for n in visible_nodes_r1:
|
|
tween.parallel().tween_property(n, "modulate:a", 1.0, 0.03)
|
|
tween.tween_property(light, "energy", 4.0, 0.02)
|
|
tween.tween_property(light, "energy", 8.0, 0.01)
|
|
tween.tween_property(light, "energy", 0.5, 0.1)
|
|
tween.tween_property(light, "energy", 7.0, 0.01)
|
|
for n in visible_nodes_r1:
|
|
tween.parallel().tween_callback(n.hide)
|
|
for n in visible_nodes_r2:
|
|
tween.parallel().tween_property(n, "modulate:a", 1.0, 0.03)
|
|
tween.tween_property(light, "energy", 0.0, 0.1)
|
|
for n in visible_nodes_r2:
|
|
tween.parallel().tween_callback(n.hide)
|