extends AnimatableBody2D @export var endPoint : Vector2 var velocity = Vector2.ZERO var moving = false func _on_area_2d_body_shape_entered(body_rid, body, bod_shape_index, local_shape_index): if not moving: moving = true var tween = create_tween() tween.set_parallel(true) tween.set_ease(Tween.EASE_IN_OUT).set_trans(Tween.TRANS_SINE) var dur = position.distance_to(position + endPoint) / 750 tween.tween_property(self, "position", position + endPoint, dur) tween.tween_property(self, "velocity", endPoint / dur / 3, dur / 2) tween.tween_property(self, "velocity", Vector2.ZERO, 1.25).set_delay((dur / 2)) tween.chain() tween.tween_property(self, "position", position, dur).set_delay(2) tween.tween_property(self, "velocity", -endPoint / 3, 1).set_delay(2) tween.tween_property(self, "velocity", Vector2.ZERO, 1.25).set_delay(3) await tween.finished moving = false