Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: am3500 en Julio 16, 2014, 07:14:00 PM

Título: ayuda enemigo (OJO)
Publicado por: am3500 en Julio 16, 2014, 07:14:00 PM
hola amigos. como puedo hacer que el enemigo me siga al verme de un volumen de 50 ohhh algo asi me explico yo quiero que cuando yo me hacerque al enemigo el me siga si me mira y si yo estoy lejos de su mira que me deje de seguir
Título: Re:ayuda enemigo (OJO)
Publicado por: Marth en Julio 16, 2014, 08:42:02 PM
Un condicional tipo "if(absoluto(jugador.x+jugador.y-enemigo.x-enemigo.y)<z)" debería servirte.

Si quieres por ejemplo que ademas no deba haber obstáculos entre los objetos, mejor haz que el enemigo pueda crear un objeto que se desplazara hacia el jugador para colisionar y causar que se le detecte, si traspasa la distancia o choca con un obstáculo, se desvanecerá sin alertar al enemigo.
Título: Re:ayuda enemigo (OJO)
Publicado por: 7sixerCF en Julio 16, 2014, 08:53:14 PM
Hola, para hacerlo mas realista podrías crear un sprite invisible que se llame linea de visión que siga al jugador algo como esto:

(http://s2.subirimagenes.com/imagen/previo/thump_8996294colision-mask.png)
lo creas con precise collision mask para que sea mas exacto, con esto puedes por ejemplo hacer que cuando el jugador colisione con la linea de visión que lo persiga y por ejemplo si te acercas por la espalda este no te podrá ver o.o
para que sea mas fácil posicionar cuando edites el sprite define el centro en el vértice de la figura
Título: Re:ayuda enemigo (OJO)
Publicado por: Iros en Julio 16, 2014, 10:55:24 PM
Acá te dejo un código:

[gml]
if (point_distance(x,y,objPj.x,objPj.y) < 50) {
    direction = -objPj.direction
}
[/gml]

Lo que hace "point_distance(x1,y1,x2,y2) es comparar la distancia entre las dos coordenadas y asignándole un comparador con la distancia ya bastaría, esta función es muy buena ya que automáticamente toma la distancia en forma radial.