Hola de nuevo xD! Esta duda es un tanto complicada.
Lo que quiero hacer es que el personaje golpee a un objeto, llamemosle objSandbag, y seg?n de qu? lado le pegue y cu?l sea el golpe, ?sta salga "volando" como corresponda.
Bueno, para controlar los sprites que usa el personaje que ataca y el da?o y eso, uso un script scrGolpe():

[gml]Sprite = argument0
Boton = argument1
damage = argument2
direccion = argument3

sprite_index = Sprite
alarm[0]=(image_number/image_speed)-2
image_index = 0
i:= instance_create(x,y,objPlayerBox)
if (Sprite = spr_A) i.sprite_index = spr_Abox
if (Sprite = spr_airA) i.sprite_index = spr_airAbox
if (Sprite = spr_duckA) i.sprite_index = spr_duckAbox
i.image_xscale = image_xscale
i.image_speed = image_speed
i.direccion = direccion
i.damage = damage[/gml]
Donde damage es el da?o que causa y adem?s la velocidad a la que(osea qu? tan lejos) "volar?a" nuestra pobre Sandbag, y direcci?n la direcci?n hacia d?nde tiene que ir.
As? que creo otro script que se llama scrRecibirGolpe() (uy qu? original xD:

[gml]/*if place_meeting(x+1,y,other){
speed = -other.damage*2}
if place_meeting(x-1,y,other){
speed = other.damage*2}
if (!place_free(x,y+1)&& direction = 270){
direction = 90} else direction = other.direccion
direccion = cos*(degtorad(wspeed)) + sin*(degtorad(vspeed))
direccion = direction*/
x+= cos*(degtorad(wspeed))
y+= sin*(degtorad(vspeed))[/gml]
Y ah? est?n los sistemas que hice pero que no funcionaron como quer?a.
?Algui?n me puede ayudar?  :'(
PD: En el ?ltimo no me reconoce la variable cos D:
Gracias.
Hay juegos que no se pueden hacer...
Para todo los demas existe Comunidad GM.

ORE WO DARE DA TO OMOTTE YAGARU?

Se me ocurre: primero se define que cuando el personaje est? viendo hacia la derecha un c?digo direcci?n=0 y cuando est? viendo a la izquierda direccion=180