Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Rosergio1 en Mayo 13, 2016, 09:14:45 PM

Título: Ayuda en programacion de un enemigo rpg
Publicado por: Rosergio1 en Mayo 13, 2016, 09:14:45 PM
hola a todos, he estado trabajando en mi juego rpg, parecido a los Zeldas, y estoy estancado porque no se como programar uno de los enemigos basicos de un nivel...

Lo que quiero que haga el enemigo es que siga al jugador, pero quiero que lo haga en 4 direcciones, y no en diagonal...
que si está a la izquierda, se vaya a la izquierda, si esta arriba, arriba, etc, pero una direccion a la vez.
y con una alarma, cada 30 pasos decida en que direccion ir, una a la vez...

alguien que sepa mas de programacion que yo? xD

un ejemplo adjuntado
Título: Re:Ayuda en programacion de un enemigo rpg
Publicado por: bygdle en Mayo 13, 2016, 09:24:11 PM
Podrías tomar la dirección entre la posición del enemigo y el jugador, y después aproximarla a un múltiplo de 90:
[gml]
var dir = point_direction(x, y, player.x, player.y);
direction = round(dir/90) * 90;
[/gml]
Título: Re:Ayuda en programacion de un enemigo rpg
Publicado por: Rosergio1 en Mayo 13, 2016, 10:21:11 PM
Cita de: NiuWeb en Mayo 13, 2016, 09:24:11 PM
Podrías tomar la dirección entre la posición del enemigo y el jugador, y después aproximarla a un múltiplo de 90:
[gml]
var dir = point_direction(x, y, player.x, player.y);
direction = round(dir/90) * 90;
[/gml]

como lo pongo en mi juego... (lo siento, no se casi nada de GML, ni programacion ._. )
Título: Re:Ayuda en programacion de un enemigo rpg
Publicado por: bygdle en Mayo 13, 2016, 10:23:47 PM
Podrías ponerlo en el evento <create> del enemigo, junto a esto:
[gml]
alarm[ 0 ] = room_speed;
[/gml]
Y pones lo mismo (el código anterior más éste) en el evento <alarm 0>

No olvides declarar la variable speed con la velocidad a la que quieres que se mueva antes de todo el código en el mismo evento <create>