Hola, ultimamente estoy trabajando en un juego de plataformas al estilo de supermario, como personaje principal utilizo una serie de sprites animadas que cambian segun la accion del personaje.

La cosa es que me gustaria que el objeto cambiase su sprite en cuando entrase en contacto con el suelo, despues de un salto, pero dependiendo de si cae desde la derecha o bien desde la izquierda.

He pedido ayuda a un amigo mio y me ha escrito un codigo en gml que funciona a la perfecci?n, a?n as?, soy muy principiante y me gustar?a que alguien me dijese como hacerlo con DnD (Drag and Drop) para utilizarlo en otros juegos. Gracias de antemano.

Aqu? os pongo el codigo escrito por mi amigo:

Creation event:
left = false;

Step event:
if ( ( sprite_index == spr_persCJL ) or ( sprite_index == spr_persCJR ) )
    if ( !place_free( x, y + 1 ) )
    {
        if ( !left )
        {
            sprite_index = spr_persCR
            image_index = 0
        }
        else if ( left )
        {
            sprite_index = spr_persCL
            image_index = 0
        }
    }


Keyboard <Left> event:
left = true

Keyboard <Right> event:
left = false

PD: "spr_persCJL" y "spr_persCJR" son las sprites del personaje saltado mientras que "spr_persCR" y "spr_persCL" son las sprites del personaje al caer.

es tan simple como darle a: evento: collision con (donde sea)(el suelo donde caes)

y acci?n:
si quieres que cambie el sprite pero a otro objeto, pones: change instance y le das a perform events.
Pero si quieres que cambie momentaneamente le das a change sprite, luego le pones que se mantenga as? x tiempo, y finalmente le pones el sprite inicial...

es mas facil hacerlo que explicarlo...