xiandie/scene/effect/dizzy_shader.gd

21 lines
475 B
GDScript3
Raw Normal View History

2025-07-01 17:18:25 +00:00
extends CanvasLayer
@onready var rect = $ColorRect as ColorRect
var tween
func dizzy(duration := 2.0):
if tween and tween.is_valid():
tween.kill()
show()
tween = create_tween()
tween.tween_property(rect.material, "shader_parameter/intensity", 0.7, 0.2)
tween.tween_property(rect.material, "shader_parameter/intensity", 1.3, 0.2)
if duration > 0.0:
tween.set_loops(max(duration / 0.4, 1))
else:
# infinite
tween.set_loops(10000)
tween.tween_callback(hide)