Hola caballeros tengo una duda acerca de que esta mal con mi codigo de salto


evento step
gravity_direction = 270

if not place_meeting(x, y + 1, obj_suelo)
   {
   gravity = 0.1;
   }
else
   {
   gravity = 0;
   }


y el de salto es este
if keyboard_check(vk_up) and sprite_index != spr_saltar_derecha
{
     sprite_index = spr_saltar_derecha
     image_speed = 1
     y-=1
}

if (sprite_index == spr_saltar_derecha) and (image_index >= image_number - 1)
     image_speed = 0


el problema es que cuando colisiono con el suelo mi personaje no para y sigue bajando  :-\
y otra duda ¿cuales codigos tengo que poner en el evento step y cuales en create?

Aun cuando pares la gravedad la velocidad sigue actuando. En la colision con el suelo pone esto
if vspeed>0
{
y=yprevious
move_contact_all(270,abs(vspeed))
vspeed=0
}


2 cositas mas, no se si lo hiciste a proposito, la gravedad es muuuy poca (0.1) y el salto como esta es mas bien como si volara, te diria que cambies a un evento de keyboard_check_pressed(vk_up) con vspeed=-8 en lugar de y-=1

El evento Create solo ocurre una vez, donde por lo general se declaran las variables con su valor inicial, y el evento Step el codigo se repite continuamente, aqui podes por ejemplo hacer que una variable sume continuamente

muchas gracias me quedo super claro  ;D