Hola a todos, tengo una duda y agradeceria la ayuda:

Tengo en mi juego (shooter con vista desde arriba) al protagonista con este codigo de movimiento:

{
    vel = 10;
    {
   
    if( keyboard_check(ord("D")))
        x += vel;

    {
    if( keyboard_check(ord("A")))
        x -= vel;
}

   {
    if( keyboard_check(ord("W")))
        y -= vel;
}

   {
    if( keyboard_check(ord("S")))
        y += vel;
       
}


direction = point_direction(x,y,mouse_x,mouse_y)
image_angle = direction

}

}


Basicamente se mueve en cualquier direccion y gira hacia donde el cursor este, y posee 3 variables q son sus armas: Machine, lanzallamas y icebeam. (el personaje cambia de color con el arma seleccionada)

Lo que quiero agregar es que, cuando presione ASDW para moverlo, cambie al sprite del personaje caminando, y cuando lo suelte vuelva al sprite estatico.

Posiblemente es algo muy simple que debo agregar, y no me di cuenta. Gracias de antemano por la ayuda.
La vida es como un videojuego...excepto que sin continues...

Lo que tenes que hacer es lo siguiente:

En la funcion:

   
if( keyboard_check(ord("D")))
    x += vel;
    sprite_index = nombre_sprite_caminando;
{


y agragar la siguiente funcion cuando soltas la tecla para que cambie al sprite cuando esta parado


if (keyboard_check_released(ord("D")) ){
    sprite_index = nombre_sprite_parado;
}



El ejemplo te lo hice con una tecla pero deberias hacerlo con las 4 de movimiento WASD

Saludos

`•.¸¸.•´´¯`••._.•(Algunos se divierten jugando,)•.¸¸.•´´¯`••._.•
`•.¸¸.•´´¯`••._.•(yo me divierto creando juegos.)•.¸¸.•´´¯`••._.•

Gracias, aunque falta que reconozca que arma tiene seleccionada (si es machine, lanzallamas o icebeam). Supongo que solo debo agregar un if (machine = true) y similares, no?
La vida es como un videojuego...excepto que sin continues...