Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: rogerskate en Mayo 18, 2014, 03:17:40 AM

Título: Como hacer una IA básica?
Publicado por: rogerskate en Mayo 18, 2014, 03:17:40 AM
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 :(
Título: Re:Como hacer una IA básica?
Publicado por: 3dgeminis en Mayo 18, 2014, 07:16:11 AM
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)

Título: Re:Como hacer una IA básica?
Publicado por: rogerskate en Mayo 18, 2014, 06:27:31 PM
Cuak? O.O Na mentira xD amigo no me sirve esa :l
Título: Re:Como hacer una IA básica?
Publicado por: 3dgeminis en Mayo 18, 2014, 09:42:50 PM
 :D :-[ bueno te dejo un ejemplo
Título: Re:Como hacer una IA básica?
Publicado por: rogerskate en Mayo 19, 2014, 12:27:55 AM
Ya se hacer para que ande por el mundo :D ahora como hago para que me mire cuando este cerca de el?
Título: Re:Como hacer una IA básica?
Publicado por: 3dgeminis en Mayo 19, 2014, 06:09:42 AM
Revisaste el ejemplo ??? Si no es eso necesito que expliques mejor lo que queres
Título: Re:Como hacer una IA básica?
Publicado por: chute666 en Mayo 19, 2014, 09:53:25 AM
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...
Título: Re:Como hacer una IA básica?
Publicado por: rogerskate en Mayo 19, 2014, 02:45:44 PM
Acabo de descargar el ejemplo, hoy lo pruebo a ver y te aviso :D
Título: Re:Como hacer una IA básica?
Publicado por: Cerez0 en Mayo 19, 2014, 02:53:32 PM

usa la funcion collision_circle

http://docs.yoyogames.com/source/dadiospice/002_reference/movement%20and%20collisions/collisions/collision_circle.html

Título: Re:Como hacer una IA básica?
Publicado por: rogerskate en Mayo 19, 2014, 03:18:24 PM
Menos mal que existe el traductor xD
Título: Re:Como hacer una IA básica?
Publicado por: computerguyhunter en Mayo 23, 2014, 10:31:14 PM
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
}
Título: Re:Como hacer una IA básica?
Publicado por: rogerskate en Mayo 23, 2014, 11:13:28 PM
Gracias! Probaré todo lo que has aportado y te aviso como me andubo  ;D Saludos :)
Título: Re:Como hacer una IA básica?
Publicado por: computerguyhunter en Mayo 24, 2014, 12:02:54 AM
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...
Título: Re:Como hacer una IA básica?
Publicado por: computerguyhunter en Mayo 24, 2014, 12:33:23 AM
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 :)
Título: Re:Como hacer una IA básica?
Publicado por: elviskelley en Mayo 24, 2014, 03:34:53 PM
Dale click aca: Tutorial Como Dar IA a tus personajes (http://www.palimpalem.com/4/elviskelley/index.html?body20.html)