Anteriormente me ayudaron muy bien con como hacer que e enemigo se de cuenta de que estavas detras o delante de el.Me dijeron que introdujera lo siguiente:
En el evento Create:Dos variables de valor 0 llamadas X1 y X2
En el evento Step:Una pregunta de si X1 es mayor o menor a 0.Y las acciones para cada caso.
Eso determinaba que debia hacer el enemigo si el Player estava detraz o delante de el.
¿Para que el enemigo sepa cuando esta debajo o arriba seria lo mismo pero con X2?
El sistema que yo tenia pensado usar era que el proyectil que perseguia cada sierto tiempo creara unas lineas invisibles por cada direccion.Cuando una linea colisiona con el Player,esta cambia a otro objeto con el mismo Sprite,y cuando el Proyectil colisiona con este,se mueve en una direccion especifica.Ejecutando esta accion continuamente el proyectil puede perseguir bastante bien,pero queria ver si se podia hacer sin llenar la pantalla de objetos invisibles.
Gracias por leer.Y otra cosa:El proyectil deve tener un Sprite distinto dependiendo de su direccion.Pero no se como indicar una direccion que se encuentre entre un punto y otro,ejemplo:Entre 20 y 40.Solo se indicar una direccion especifica.
Denuevo gracias por leer,agradeceria algun tipo de ayuda

creo que buscas la función de:
point_direction(x1,y1,x2,y2);

la cual como ejemplo para un proyectil que sigue al player (en create para mantener la direccion y el player pueda esquivar, en step si quieres que lo persiga odo el rato):

speed = laquequieras;
direction = point_direction(x,y,oplayer.x,oplayer.y);

y ya está, oplayer, es el objeto de tu player. faltarían cosas como el proyectil chocando con paredes y tal, pero eso ya es otro tema xd.
[spoiler="ola k ase clickarme o k ase"]la imagen no se quita xD
[/spoiler]