Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: T789 en Mayo 08, 2019, 04:46:08 PM

Título: Movimiento Suave a Acelerado con Sprites [Solucionado]
Publicado por: T789 en Mayo 08, 2019, 04:46:08 PM
Pequeña duda que tengo sobre los movimientos con los sprite,
Tomemos como ejemplo un juego de sonic, cuando este corre principalmente entra con una velocidad reducida y luego es cuando empieza a correr mas rapido

cuando este presiona la tecla: Principalmente empieza a correr con los sprite y al segundo este aumenta la velocidad con otros sprite

Mi duda es como puedo hacer ese cambio de sprite al momento de iniciar el movimiento
Título: Re:Movimiento Suave a Acelerado con Sprites
Publicado por: yottaomi en Mayo 08, 2019, 07:02:27 PM
Prueba con esto:

Create:
sprite_index = spr_parado; 

velocidad = 0;                    //Velocidad actual
estado_velocidad = 0;      //Cantidad de velocidad [0 = 4; 1 = 8;] (Se ve más adelante)


Step:
derecha = keyboard_check(vk_right);     //Movimiento hacia la derecha
if estado_velocidad = 0{velocidad = 4;}if estado_velocidad = 1{velocidad = 8;}

if derecha{
    if sprite_index = spr_parado{     //Al poner esta condición la alarma solo se ejecutará una sola vez
        alarm[0] = room_speed;          //La alarma se activará en un segundo
        sprite_index = spr_caminar;   //El sprite de movimiento reducido
    }
}
else{     //Si no se está pulsando la tecla
    velocidad = 0;     //La velocidad se reducirá a 0
    estado_velocidad  = 0;     //El estado volverá a 0 [velocidad = 4]
    alarm[0]   = -1     //Se reiniciará la alarma
    sprite_index = spr_parado;     //Y el sprite volverá ser el de parado
}

x += velocidad;     //Suma la coordenada "x" actual por la variable "velocidad"


Alarm[0]:     //Si se ha mantenido la tecla un segundo
sprite_index = spr_correr;     //El sprite actual será el sprite de correr
estado_velocidad = 1;           //Y la velocidad cambiará de 4 a 8


Esto es para el movimiento hacia la derecha.