Escribí una versión del script. Cuando el enemigo llega a la posición del personaje, sigue en línea recta hasta desaparecer de la pantalla:
extends Area2D
export (float) var speed = 500
var posicion_alcanzada = false
var movimiento = Vector2.ZERO
onready var personajes = get_tree().get_nodes_in_group('personaje')
onready var personaje_posicion = personajes[0].global_position
# Mueve un enemigo a la posición del personaje y luego sigue en linea recta
func _physics_process(delta):
if((self.global_position == personaje_posicion) && posicion_alcanzada == false):
posicion_alcanzada = true
if(posicion_alcanzada == false):
self.global_position = global_position.move_toward(personaje_posicion, speed * delta)
else:
# x:-200 que el enemigo hasta salir de pantalla
self.global_position = global_position.move_toward(Vector2(-200, personaje_posicion.y), delta * speed)