2025-01-06 11:13:48 +00:00
|
|
|
class_name CanvasUtil extends Object
|
|
|
|
|
|
|
|
|
2025-06-29 14:57:02 +00:00
|
|
|
static func shake_layer(layer: CanvasLayer, duration: float, delta := 2.0, fps := 20.0) -> void:
|
|
|
|
var tween = layer.create_tween()
|
|
|
|
# shake layer's offset
|
|
|
|
var origin_offset = layer.offset
|
2025-01-06 11:13:48 +00:00
|
|
|
var count = int(duration * fps)
|
|
|
|
var delta_t = 1.0 / fps
|
|
|
|
for i in range(count):
|
|
|
|
var offset = Vector2(randf_range(-delta, delta), randf_range(-delta, delta))
|
2025-06-29 14:57:02 +00:00
|
|
|
tween.tween_property(layer, "offset", origin_offset + offset, delta_t)
|
|
|
|
# tween back to origin
|
|
|
|
tween.tween_property(layer, "offset", origin_offset, delta_t)
|