Estoy haciendo un juego de disparos al estilo space invaders.
Tengo un enemigo que es un boss y lo que quiero hacer es que de repente baje hasta el fondo de la pantalla y luego vuelva a su posicion (arriba de la pantalla)
Bueno para que se mueva hacia abajo es cuestión de jugar con la coordenada y, una forma fácil puede ser usando la velocidad vertical (vspeed) y darle un valor positivo para que baje.
Puedes crear una variable de la posición de y inicial para que luego regrese allí, por ejemplo de nombre yinicial y su posición es 20.
Y ahora para que sólo de repente baje, se puede usando aleatoriedad, crea otra variable que actúa de interruptor para saber que pasa al estado de bajar.
evento create del jefe
[gml]
yinicial = 20;
bajar = false;
[/gml]
evento step del jefe
[gml]
if bajar == false and irandom(1000) <= 50 //menor el valor de 50, con menos frecuencia bajará y viceversa
{
bajar = true; //ya empezó a bajar
vspeed = 5;
}
if y >= 450 //cuando llega al fondo
{
vspeed = -5; //regresa para arriba
}
if y <= yinicial and vspeed < 0 //cuando vuelve a la pos.y inicial
{
vspeed = 0;
bajar = false; //vuelve a activarse el ciclo para que vuelva a bajar de nuevo
}
[/gml]