Octubre 02, 2014, 02:42:11 AM Ultima modificación: Octubre 05, 2014, 05:50:23 PM por Chioban
Buenas a todos.

Hoy me ha surgido un problema, cual es que no encuentro forma de lograr que un enemigo volador siga al jugador.

Este es el codigo que utilizo para algunos enemigos terrestres:
[spoiler]if OBJ_Sunso.x<x and distance_to_object(OBJ_Sunso)>10 {x-=4}
if OBJ_Sunso.x>x and distance_to_object(OBJ_Sunso)>10 {x+=4}[/spoiler]

Pero cuando se trata de enemigos que pueden volar por el mapa me es inútil.

Agradecería mucho si me encontraran una solución. Gracias por leer.

#1 Octubre 02, 2014, 05:17:23 AM Ultima modificación: Octubre 02, 2014, 05:20:04 AM por penumbra
Puedes probar a usar la función move_towards_point(x,y,sp) para que el enemigo se dirija hacia el jugador, o si lo prefieres, calcular la dirección del enemigo al jugador cada cierto tiempo (en una alarma) mediante la función point_direction(x1,y1,x2,y2) y usar esa dirección para mover al enemigo.

El uso de point_direction() a mi me parece mejor porque evita tener que usar dos IF (como en tu ejemplo) para saber si se mueve a la izquierda o a la derecha

¿Podrías dejarme un ejemplo un poco más detallado?

Como hacen el trabajo mas dificil, me da un poco de bronca  >:(

En el objeto del enemigo pone el evento STEP y pones La accion siguiente

----------------
STEP TOWARDS
x = jugador.x
y = jugador.y
----------------

action_potential_step(obj_player.x,obj_player.y,speed,0);
if x>obj_player.x image_xscale=1; else image_xscale=-1;


y listo, tu personaje volará hacia tu player rodeando todos los sólidos. (edita el obj_player y el speed a tu gusto xd)
[spoiler="ola k ase clickarme o k ase"]la imagen no se quita xD
[/spoiler]

¡Muchas gracias, [user]kostra[/user] ¡Realmente me ayudo!

Por cierto, el "action_potential_step" no es más que el D&D de "step avoiding", el último de la pestaña move ;)
[spoiler="ola k ase clickarme o k ase"]la imagen no se quita xD
[/spoiler]