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)