Anuncios Google

Lua - Hacer que enemigo vaya hacia tí

Hola muy buenas a todos, llevo mucho tiempo intentando investigar de
que manera puedo hacer que un enemigo vaya hacia tu personaje (el que
controlas) y todavía no he encontrado ninguna forma :S

¿Alguien me podría ayudar?

 

Estos son los arrays de mi personaje y los del enemigo:

--Link
jugador = {}
jugador.x = 20
jugador.y = 120
jugador.img = lderecha
jugador.height = lderecha:height()
jugador.width = lderecha:width()
jugador.arma = "espada"
movimiento = "false"

 

darklink = {}
darklink.x = 420
darklink.y = 120
darklink.img = dliz1
darklink.height = dliz1:height()
darklink.width = dliz1:width()
darklink.vida = 100
darklinkmuerto = false
darklinkmovimiento = false

 

Os pongo los arrays por si acaso yo tuviera que poner alguno más, gracias de antemano :-)


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de burnxez

Juega con X y Y

Lo podrías solucionar con varias sentencias if, por ejemplo, para perseguir al jugador por eje X, podrías implementar lo siguiente:

if jugador.x > darklink.x then
darklink.x = darklink.x + 2
end

Eso lo que hace es que en caso de que la posición X del jugador sea más grande que la posición X de darklink, sumará 2 a la posición X de darklink.

No sé si la sintaxis sea correcta pues hace mucho que no toco LUA, pero creo que se entiende lo que tienes que hacer.

Eso mismo aplica para el eje Y haciendo los reemplazos correspondientes.

Saludos.

Imagen de joselopez32

Muchas Gracias

Muchas gracias xXZeroXx, pero de esa manera lo que consigo es que se acerque a mí pero lo que quiero es hacerlo como más realista (estilo a un juego de zelda)

haber si me explico, por ejemplo, yo quiero que el enemigo se acerque a mí pero que haya momentos en los que se pare y me ataque y luego huya, ¿me explico así mejor?

De todas formas muchas gracias tío, así consigo que el enemigo se acerque a mí

 

SaLuDoSsS!

Imagen de Arkanist

Eso es la IA.

Y es dificil programarla para que parezca realistica, simplemente intenta adaptarla a tus gustos, con funciones aleatorias para atacar por ejemplo.

Imagen de joselopez32

Si tio...

Por eso mismo pido ayuda, haber si me podrían ayudar en algo

aunque en verdad me has dado una buena idea con eso ^^

Imagen de burnxez

Situaciones

Te recomiendo lo mismo que te ha dicho el compañero de abajo, pero aplicado de forma diferente.

int situacion = 0
 
function situacionActual() {
 
if jugador y enemigo dentro de la pantalla then
 
  if jugador.ataque == true then
    situacion = 2
  end
 
  if jugador.ataque == false then
    situacion = 1
  end
 
  else situacion = 0
  end
end
 
function comportamiento() {
 
  if situacion == 0 then
    enemigo.hacernada
  end
 
  if situacion == 1 then
    enemigo.atacar
  end
 
  if situacion == 2 then
    enemigo.huir
  end
}

Seguro que habrá muchisimos errores de sintaxis, espero entiendas la idea principal ;-)

Saludos.

Imagen de joselopez32

Gracias

Entiendo muy bien la idea que quieres darme, en verdad voy viendo las cosas más claras con esto jeje

SaLuDoSsS!

Imagen de Kevinkl3

eso

eso me parece que ya seria inteligencia artificial :D,

pero puedes hacer varias variables digamos algo asi:

situacion{}

if situacion[1] == 1 then

codigo para que attaque

end

if situacion[1] == 2 then

codigo para que te siga

end

if situacion[1] == 3 then

codigo para que uya

end

luego puedes hacer que situacion[1] sea igual a un numero al azar (random) o que ese numero cambia dependiendo de una accion del jugado,

 

ejemplo:

if shooting == true then

situacion[1] == 3

end

asi el enemigo uhira

 

espero averte ayudado jej.

saludos!!

 


Chat No Oficial SceneBeta

PSP && Wii

 

Imagen de joselopez32

Si me has ayudado

También me habéis dado una idea, la cual es hacer lo primero que me dijeron sobre lo de la x y la y para que el enemigo se acerque

y cuando esté cerca puedo hacer que la situación cambie a atacar

y una vez que haya atacado hacer que la situación cambie a huir

o sino hacerlo todo al azar una vez esté el enemigo cerca jeje

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.