no lo he provado pero creo que a?adiendo esto funcionara:
Esto seria simplemente igual que cuando anda, tienes que verificar si la x es mas grande o mas peque?a para cambiar de sprite, espero que te funcione :)
Código [Seleccionar]
//argument0 el objeto a perseguir.
//argument1 velocidad andando
//argument2 velocidad corriendo
argument0=obj_personaje;
argument1=2;
argument2=4;
if x>obj_personaje.x {sprite_index=cabra_I;}
if x<obj_personaje.x {sprite_index=cabra_D;}
if place_free(x,y+1){gravity=0.5}else{gravity=0;}
var dir;
dir=(x<argument0.x)*2-1
if place_free(x+5*dir,y){ x+=argument1*dir}
////////////trozo modificado//-> yo he puesto argument0.x en vez de obj_personaje.x
if distance_to_object(obj_personaje)<100{
x+=argument2*dir;
if x>argument0.x{sprite_index=cabra_corriendo_I;}
if x<argument0.x{sprite_index='el nombre del sprite'}
}
Esto seria simplemente igual que cuando anda, tienes que verificar si la x es mas grande o mas peque?a para cambiar de sprite, espero que te funcione :)