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
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]
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 ._. )
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>