Tengo un juego RPG donde el enemigo quisiera que bagara por el room moviendose de un lado a otro, pero cuando tenga al personaje a la izquierda o derecha o arriba o abajo, dejara de caminar y lo mirara, tomando en cuenta que este dentro de una distancia especificada, ya hice que bagara, pero no consigo que pare y me mire cuando este dentro de 60 pixeles de distancia, me podrían ayudar? Me urge :(
Son las 2:00 de la mañana, ando con algo de sueño :-X asi que solo te paso un link de un articulo sobre IA, te recomiendo que lo estudies y adaptes a tu juego, tiene varias cosas interesantes que se pueden aprovechar
http://www.taringa.net/posts/hazlo-tu-mismo/13608990/Game-maker-IA-basica-parte-1.html (http://www.taringa.net/posts/hazlo-tu-mismo/13608990/Game-maker-IA-basica-parte-1.html)
Cuak? O.O Na mentira xD amigo no me sirve esa :l
:D :-[ bueno te dejo un ejemplo
Ya se hacer para que ande por el mundo :D ahora como hago para que me mire cuando este cerca de el?
Revisaste el ejemplo ??? Si no es eso necesito que expliques mejor lo que queres
no se esactamnto como ponerlo en el code pues tambien soi bastante nuevo... kieres k la ia mire hacia ati como si hablarais... creo k tendrias k ponerle un code que al llegar a una distancia menos de 60< el ia mirara acia la direcion k estas tu... creo que es un poco dificil pues tendrias que acer que mirara a 4 direcciones como cuando tu pj anda y se para mirando segun para k lado con un sprite diferente...
Acabo de descargar el ejemplo, hoy lo pruebo a ver y te aviso :D
usa la funcion collision_circle
http://docs.yoyogames.com/source/dadiospice/002_reference/movement%20and%20collisions/collisions/collision_circle.html
Menos mal que existe el traductor xD
Voy a tratar de ayudar por lo que voy entendiendo tu idea
//CREATE EVENT
e_walk=true;//variable que acepta que el enemigo camine por donde quiera.
e_moving=0;//variable que elige la dirección donde irá el personaje
alarm[0]=room_speed*2; //cada cuanto tiempo e_moving cambiará su valor para que camine en cierta dirección
//ALARM 0 EVENT
e_moving=choose(0,1,2,3,4);
alarm[0]=room_speed*2;
//STEP EVENT
if (distance_to_object(personaje)<60) then e_walk=false;
else e_walk=true;
//enemigo vagando... los sprites los colocas a tu gusto
if (e_walk==true)
{
switch(e_moving)
{
case 1: x+=4;break;// DERECHA
case 2: x-=4;break;// IZQUIERDA
case 3: y+=4;break;// ABAJO
case 4: y-=4;break;// ARRIBA
}
}
no especificaste si la dirección de la mirada del enemigo al personaje puede también aceptar de forma diagonal
considerare que quieres que te mire horizontal o verticalmente:
//CREATE EVENT
y2=20;//altura del enemigo
x2=20;//ancho del enemigo
//STEP EVENT
if (e_walk==false)//el enemigo va a mirar
{
if(personaje.y>y+y2) then sprite_index=e_sprt_up;//Arriba
else if(personaje.y<y) then sprite_index=e_sprt_down;//Abajo
else if (personaje.x>x+x2) then sprite_index=e_sprt_right;//Derecha
else if(personaje.x<x) then sprite_index=e_sprt_left;//Izquierda
}
Gracias! Probaré todo lo que has aportado y te aviso como me andubo ;D Saludos :)
Otra idea es que si quieres que tu enemigo te miré también diagonalmente añade esto:
// STEP EVENT
if e_walk=false then image_angle=point_direction(x,y,personaje.x,personaje.y);
subiré un ejemplo de esto en unos minutos...
EL archivo que he subido contiene todo lo que expliqué, puedes revisar el código fuente, usé :GM8:
Cualquier pregunta déjame un mensaje y trataré de solucionarlo :)
Dale click aca: Tutorial Como Dar IA a tus personajes (http://www.palimpalem.com/4/elviskelley/index.html?body20.html)