bueno pues mi duda seria como hacer estructurar un script para un juego de plataforma para cambiar de sprite correctamente, por ejemplo sin que el personaje haga moonwalk o q se trabe, de que deberia depender? no pido el script solo pido orientaci?n.

para un plataformas solo usa sprites de esta manera.
usare como nombre el personaje pedro.
sprPedroDS (osea un sprite de derecha de cuando esta caminando sobrel suelo, lo que hago es centrar la pocision X dejando la Y en 0, ya que con esto con solo usar image_xscale me ahorro el uso de un sprite.) ejemplo.
event left
sprite_index=sprPedroDS; image_xscale=-1;
event right
sprite_index=sprPedroDS; image_xscale=1;
como puedes ver use el mismo sprite solo lo inverti con el image_xscale, esto te ahorra el andar creando sprites para cada lado y ahorras recursos.
digamos ahora que quieres agregar un sprite quieto un sprite de salto cuando esta subiendo, un sprite de salto cuando esta cayendo, y el de correr, igual usaremos un sprite de cada accion mirando a la derecha, y lo aremos mirar a la izquierda usando image_xscale.
Sprites.
sprCamina  (usa nombres cortos)
sprSube
sprCae
sprQuieto (recomiendo para el quieto hacer que mire de frente a la pantalla, da un buen toque)
event right
image_xscale=1; //para que miren a la derecha.
if vspeed=0
{sprite_index=sprCamina;}
else
if vspeed>0
{sprite_index=sprCae;}
else
if vspeed<0
{sprite_index=sprSube;}

event realise right
sprite_index=sprQuieto; image_xscale=1;

para el lado izquierdo osea left usa lo mismo solo cambia el valor de image_xscale de 1 a -1 asi image_xscale=-1;
listo.

gracias de tu respuesta me base para hacerlo jeje pero surgio algo mas referente a eso en mi juego de plataformas cuando colisiono con un bloque pero que esta del lado derecho de mi personaje este rebota, y esto me pasa ya sea al utilizar script o al utilizar librerias. la verdad no se por que pase o si no rebota y lo que trata de cambiar es el sprite.

problema solucionado gracias elviskelley