extends Area2D signal hit(node: Node2D) signal end_of_life var tween: Tween @export var direction: float func _ready() -> void: $Sound.play() $Sprite2D.flip_h = direction < 0 tween = get_tree().create_tween() tween.tween_property( self, "global_position", global_position + Vector2(sign(direction) * 64, 0), 0.3 ).set_ease(Tween.EASE_OUT) tween.tween_callback(func(): end_of_life.emit() ) func _on_area_entered(area: Area2D) -> void: tween.stop() hit.emit(area) func _on_body_entered(body: Node2D) -> void: tween.stop() hit.emit(body)