xiandie/util/canvas_util.gd

14 lines
548 B
GDScript

class_name CanvasUtil extends Object
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
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))
tween.tween_property(layer, "offset", origin_offset + offset, delta_t)
# tween back to origin
tween.tween_property(layer, "offset", origin_offset, delta_t)