Noticias

¡Ayuda a la Comunidad GM, haz una donación!

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Autor Tema: Inteligencia Artificial Enemigo Ayuda  (Leído 608 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Bangaran

  • Habitual
  • *
  • Puntos: 19
  • Mensajes: 10
    • Ver Perfil
en: Septiembre 12, 2019, 01:51:08 am
Buenas Compañeros!! necesito de su ayuda  con un tema respecto a los enemigos!! uso GMS 1.4
ya tengo el codigo de mi enemigo para que se mueva aleatoria mente en la room
lo que quisiera es que mi enemigo me ataque solo si yo lo ataque a el y luego me persiga hasta que me mate o yo salga de la room

Si me pueden ayudar agradecido de ante mano

 


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado xStarLordx

  • Visitante
  • *
  • Puntos: 9
  • Mensajes: 6
    • Ver Perfil
Respuesta #1 en: Septiembre 12, 2019, 03:37:18 am
Hola. Eso es algo sencillo puedes hacer algo como esto:
Evento Create:
bolHurt = false;

Evento Step:
if (place_meeting(x,y,"el nombre de el objeto con el que atacas"))
{
  bolHurt = true
}

if (bolHurt = true)
{
  mp_potential_step(objPlayer.x, objPlayer.y, la velocidad a la que quieres que se mueva, aqui va true si quieres que esquive todos los objetos o false pare que esquive solo los solidos)
}

PD:Puede que tenga algun error porque nunca lo he usado en ningun proyecto. Espero que te sirva.
« última modificación: Septiembre 13, 2019, 03:05:41 am por xStarLordx »

 


Desconectado Bangaran

  • Habitual
  • *
  • Puntos: 19
  • Mensajes: 10
    • Ver Perfil
Respuesta #2 en: Septiembre 13, 2019, 07:38:59 pm
Hola. Eso es algo sencillo puedes hacer algo como esto:
Evento Create:
bolHurt = false;

Evento Step:
if (place_meeting(x,y,"el nombre de el objeto con el que atacas"))
{
  bolHurt = true
}

if (bolHurt = true)
{
  mp_potential_step(objPlayer.x, objPlayer.y, la velocidad a la que quieres que se mueva, aqui va true si quieres que esquive todos los objetos o false pare que esquive solo los solidos)
}

PD:Puede que tenga algun error porque nunca lo he usado en ningun proyecto. Espero que te sirva.

hola disculpa por mi novatada pero eso codigo q me dices es para colocarlo en el objeto enemigo o jugador?? y si es en el enemigo y tengo una maquina de estados!! en cual de los codigos me recomiendas que lo coloque

 


Desconectado :StonerStanley:

Respuesta #3 en: Septiembre 14, 2019, 10:42:31 pm
hola disculpa por mi novatada pero eso codigo q me dices es para colocarlo en el objeto enemigo o jugador?? y si es en el enemigo y tengo una maquina de estados!! en cual de los codigos me recomiendas que lo coloque


Estoy seguro que es para el enemigo ya que usa la función "mp_potential_step();" que hace que la instancia u objeto que la ejecute intente alcanzar desde una posición inicial (la posición del enemigo) a la posición del posición final (la posición del enemigo) evitando sólidos con una velocidad establecida. La función es algo ineficiente para rooms muy "laberínticas" y estrechas, pero puede servir para rooms abiertas.

Si tienes una sistema de estados, no habrá ningún problema, pero eso sí, desactiva el anterior estado y vuelvelo a activa cuando sea necesario desactivarla.
« última modificación: Septiembre 14, 2019, 10:47:52 pm por :StonerStanley: »

Mi firma.
 
Los siguientes usuarios dieron las gracias a este tema: Bangaran


Desconectado Bangaran

  • Habitual
  • *
  • Puntos: 19
  • Mensajes: 10
    • Ver Perfil
Respuesta #4 en: Septiembre 15, 2019, 06:21:47 am
Estoy seguro que es para el enemigo ya que usa la función "mp_potential_step();" que hace que la instancia u objeto que la ejecute intente alcanzar desde una posición inicial (la posición del enemigo) a la posición del posición final (la posición del enemigo) evitando sólidos con una velocidad establecida. La función es algo ineficiente para rooms muy "laberínticas" y estrechas, pero puede servir para rooms abiertas.

Si tienes una sistema de estados, no habrá ningún problema, pero eso sí, desactiva el anterior estado y vuelvelo a activa cuando sea necesario desactivarla.

Entiendo lo q dices amigo!! Pero me dice q lo coloque en el step pero es cuando de los códigos lo coloco ??
En el que hace el movimiento aleatorio?

 


Desconectado :StonerStanley:

Respuesta #5 en: Septiembre 15, 2019, 10:35:05 am
Entiendo lo q dices amigo!! Pero me dice q lo coloque en el step pero es cuando de los códigos lo coloco ??
En el que hace el movimiento aleatorio?

Colócalo en cualquiera, el evento "step", "begin step" y "end step" sirve para que se ejecute el código cada frame, dando igual en que posición del evento esté.

Mi firma.