14 lines
548 B
GDScript
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) |