Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: fedex2020 en Agosto 12, 2020, 07:33:57 PM

Título: Enemigo sigue pero no baja escalera
Publicado por: fedex2020 en Agosto 12, 2020, 07:33:57 PM
Buenas tardes comunidad,  Mi problema es el siguiente,estoy haciendo un juego tipo home alone, el problema  que tengo es que mi enemigo me sigue todo bien con el siguiente código: evento step (enemigo )       

If obj.jugador.x  > x
{
Hspeed = 3;
}

If obj.jugador.x  < x
{
Hspeed = -3;
}
El problema radica en que mi personaje baja o sube escaleras y pues mi enemigo no lo hace, como podria hacer para que suba escaleras con su respectiva animación  y lo siga persiguiendo,  se me ocurrieron variables tipo piso1 piso2 etc pero no se como hacer para que por ejemplo si estoy en el piso 1 y bajo al piso 2 mi enemigo que está en el piso 1 valla hasta la escalera,  la baje y siga persiguiendolo, agradezco su ayuda gracias...
Título: Re:Enemigo sigue pero no baja escalera
Publicado por: DawCrash en Agosto 13, 2020, 03:37:54 AM
Es algo complejo de resolver. Si posteas una captura del juego donde se vea lo que intentas hacer quizás se entienda mejor. googleé el juego pero con las imágenes que salen en Google no me doy cuenta cómo es la escena de las escaleras

Igual, en rasgos generales, una forma de implementar inteligencia artificial para que el enemigo persiga al jugador es usando el algoritmo A* (A star) para pathfinding, seguramente hay algun asset en el marketplace para eso. Pero quizás no haga falta algo tan complejo, si posteas alguna imagen quizás podamos encontrar alguna solución más sencilla
Título: Re:Enemigo sigue pero no baja escalera
Publicado por: fedex2020 en Agosto 13, 2020, 03:27:57 PM
Gracias por responder,  acá dejo un video del juego  espero su ayuda
https://youtu.be/w5wK3VbAv6c
Título: Re:Enemigo sigue pero no baja escalera
Publicado por: DawCrash en Agosto 14, 2020, 08:24:25 PM
Viendo eso no parece tan complicado

Lo más fácil sería guardar en el player y en cada enemigo una variable que diga en qué piso está, que eso lo puedes saber comparado la posicion y.

Después tendrías que modificar el evento step del enemigo para que quede algo como esto
[gml]if (piso == obj_player.piso) {
    // coloca aquí el código que ya tenías para el movimiento
} else {
    // moverse hacia la escalera
}[/gml]

Con esto puedes hacer que si el enemigo está en un piso distinto, en vez de perseguir al jugador se mueva hacia la escalera. El resto dependerá de la forma en que hayas programado la subida y bajada de escaleras
Título: Re:Enemigo sigue pero no baja escalera
Publicado por: fedex2020 en Agosto 15, 2020, 04:17:16 AM
MUCHAS GRACIAS POR TU AYUDA ME SIRVIO GRACIASSSS....