Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: jronis en Diciembre 21, 2014, 07:22:18 PM

Título: Duda animaciones sprites plataformas
Publicado por: jronis en Diciembre 21, 2014, 07:22:18 PM
Hola a todos:

mi problema es el siguiente. Tengo un personaje con 6 posibles estados. 2 para STAND izquierda o derecha, 2 para MOVE izquierda o derecha, y 2 para JUMP izquierda o derecha.

Cada uno de estos estados está compuesto por varias subimágenes.

El problema surge al saltar, cuando lo hace, inicia la animación de salto, pero cuando cae al suelo no se detiene la animación. Que es precisamente lo que quiero hacer. Una vez que toque el suelo que la animación de salto se cambie por la animación de STAND.

Os pongo aquí el código a ver que es lo que hago mal.


//Evento Step

if (place_free(x,y+1)){
    gravity_direction = 270;
    gravity = 2;
    }

//Evento End Step

if (keyboard_check(vk_left)){
    x -= global.velocidad;
    sprite_index = spr_move_left;
    image_single = -1;
    image_speed = 0.3;
}

if (keyboard_check(vk_right)){
    x += global.velocidad;
    sprite_index = spr_move_right;
    image_single = -1;
    image_speed = 0.3;
}

if (keyboard_check(vk_nokey)){
    if (sprite_index == spr_move_left){
        sprite_index = spr_stand_left;
    } else if (sprite_index == spr_move_right){
        sprite_index = spr_stand_right;
    }
}

if (!place_free(x,y+1) && keyboard_check_pressed(vk_control)){
    vspeed = -20;
    if (sprite_index == spr_stand_left or sprite_index == spr_move_left){
      sprite_index = spr_jump_left;
      if (image_index > 3){
        sprite_index = spr_stand_left;
      } 
      } else if (sprite_index == spr_stand_right or sprite_index == spr_move_right){
      sprite_index = spr_jump_right;
      if (image_index > 3){
        sprite_index = spr_stand_right;
      }   
}}


Saludos y gracias
Título: Re:Duda animaciones sprites plataformas
Publicado por: Xizotono en Diciembre 21, 2014, 08:02:12 PM
Bueno, esto en colision con el suelo. Es un sistema de gravedad sencillo (el tipico):
move_contact_solid(direction,12);
if vspeed > 0 { vspeed = 0; player_estado = 'quieto'; }
Título: Re:Duda animaciones sprites plataformas
Publicado por: penumbra en Diciembre 21, 2014, 10:49:59 PM
Una solución es, activar el sprite de salto sólamente si hay gravedad, de esta manera, al contactar con el suelo, la animación de salto no podría continuar.