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
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