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.
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
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?