hola gente les comento,mi personaje consta de 8 sprites ya que es en movimiento,el camina pero con el codigo que utilizo no camina,parece que flota no se por que,les paso los codigos basicos que tengo:

CREATE/

image_speed=0;
image_index=0;
walkingspeed=5;
setspeed=0.5;

STEP/

image_angle=direction;
direction=point_direction(x,y,mouse_x,mouse_y);
friction=0.5;

if keyboard_check(vk_up){y-=walkingspeed}
if keyboard_check(vk_down){y+=walkingspeed}

if(speed>0 or speed<0){image_speed=setspeed}
else{image_speed=0;image_index=0;}

no se ven las piernas del jugador como que saltea esa parte del sprite y solo se mueve como si flotara,y no quiero eso

Supongo que quieres decir un sprite de 8 subimágenes. Habría que ver qué tiene cada uno de los 8 frames.
No es buena idea trabajar esa acción con STEP, porque cada step te repite lo que le pidas.

Para empezar dices: image_index=0; esto indica que al crearlo está quieto.
Deberías poner siempre image_index antes que image_speed, revisa eso.

si lo quieres ver corriendo y usando los 8 frames, haz esto:
create //walking=0;
Luego en la tecla que usas, los cursores pones esto:
Up: walking=1
if walking=1{image_index-=1 image_speed=0.2}
Usa velocidades bajas para que no se salte los frames, por eso te obvia algunos.
La verdad es como la luz de una vela, que ni la oscuridad inmensa, puede opacarla.