class_name CanvasUtil extends Object # 晃动节点 static func shake_node(node: CanvasItem, tween: Tween, duration: float, delta := 5.0, fps := 4.0) -> void: var origin_pos = node.position 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(node, "position", origin_pos + offset, delta_t).set_trans(Tween.TRANS_CUBIC)