hola, necesito ayuda con mi sprite_jugador estoy haciendo un juego de plataformas y quiero que cuando mi sprite_jugador camine hacia la derecha o izquierda y se detenga quiero que quede parado hacia la direccion donde estaba caminando
Puedes estructurar el código de muchas maneras, pero par aque sea más fácil ayudarte, muestranos el código que utilizas.
// 2 Detectar movimientos y reacción horizontal (antes de las colisiones)
key_right = keyboard_check(vk_right);
key_left = -keyboard_check(vk_left);
move = key_left + key_right;
hsp = move * movespeed;
if (hsp != 0 or vsp != 0) {
if (keyboard_check(vk_left) ) {
sprite_index = spriteizq;
image_speed = 0.4;
}
else {
sprite_index = sprite6
image_speed = 0.4;
}
}
else{
if (keyboard_check_released(vk_left))
{
sprite_index = sprite8;
}
else {
sprite_index = sprite5;
}
}
Si el sprite viendo a la derecha es igual al sprite viendo a la izquierdo, solo invertido, puedes aprovechar la variable image_xscale.
Cambia el código de esta forma
[gml]
if keyboard_check(vk_right) {
image_xscale = 1;
}
else if keyboard_check(vk_left) {
image_xscale = -1;
}
if (vsp == 0) {//en el piso
if (hsp == 0) sprite_index = spParado;
else sprite_index = spCaminando
}
else {//en el aire
sprite_index = spSaltando;
}
[/gml]
(La condición para saber en el piso debe ser diferente, ya que la velocidad vertical podría ser cero al colisionar por arriba)