Hola a todos, este es el problema:

Mi juego posee los siguientes 3 objetos:

-Personaje
-Enemigo
-Tile Enemigo

La idea es que el enemigo se mueve por una plataforma, toca el tile enemigo y cambia de direccion, el problema es que solo reconoce cuando el tile es solido, y al dejarlo asi el personaje reacciona ante el (no hay nada de codigo entre el personaje y el tile)

Hay alguna forma de arreglar eso?

Este es el codigo que el enemigo usa para moverse:

if place_free(x+hsp,y)
    {x+=hsp}
    else
    {hsp=-hsp}

if place_free(x,y+1)
    {gravity = 0.5}
    else
    {gravity = 0}
gravity_direction=270


Y este el de colision con el tile:

if vspeed>0 && !place_free(x,y+vspeed)
    {move_contact(270)}

    vspeed=0


Posiblemente tenga que alterar el segundo, no? Gracias de antemano por su ayuda
La vida es como un videojuego...excepto que sin continues...

Mira... podes utilizar la variable x del  tile... osea, en el evento steep del enemigo pones el codigo que diga..

Citarif (x==tile enemigo.x){
direction+=180} //cambiaria de direccion...

esto es, si el enemigo pasa sobre el tile... si el tile enemigo esta a la misma altura, usa un collision_rectangle

Citarif(collision_rectangle(x1,y1,x2,y2,tile enemigo,1,1)) {// x1,y1,x2,y2 son las coordenadas del rectangul ode colision, tendria que tener el tamaño del enemigo +1 aprox
direction+=180}

fijate si te sirve :)

El primero no me funciono cuando el enemigo y el tile eran ambos no solidos (cuando el tile era solido si funcionaba)

El segundo...no entiendo como usarlo
La vida es como un videojuego...excepto que sin continues...