Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: J.E.A en Agosto 13, 2012, 03:48:33 PM

Título: Como hacer que un enemigo al colisionar con una pared salte (Ayuda)
Publicado por: J.E.A en Agosto 13, 2012, 03:48:33 PM
Hola a todos  8), como hago para que un enemigo salte la pared al colisionar con ella, quisiera que cuando colisione o si esta  1 pixel de distancia de la pared, la salte y despues siga caminando. No se si ustedes conoceran un tal juego de NES llamado Gimmick, bueno, quisiera que haga igual que los primeros enemigos que aparecen que son los que saltan la pared mientras me persiguen  :-[
Título: Re:Como hacer que un enemigo al colisionar con una pared salte (Ayuda)
Publicado por: somnus en Agosto 13, 2012, 06:21:07 PM

pues me imagino que has de saber que al momento de chocar con alguna pared u objeto solido

casi siempre se pone el codigo de

x_previous, y_previous

pues en vez de que haga eso

puedes hacer el codigo de que tu personaje salte

por ejemplo:

EV COLISION CON PARED
salto_pared=true;

en el evento step

if(salto_pared==true)
{
personaje.x-=5;    // si el personaje choca con una pared derecha
//aqui le cambias la animacion para que salga, la que brinca hacia la izq
//y ma so menos asi...

}







Título: Re:Como hacer que un enemigo al colisionar con una pared salte (Ayuda)
Publicado por: MaanuRP en Agosto 13, 2012, 08:03:11 PM
Dandole gravedad (Algo de 0.5) para que vuelva al suelo, agregarle lo siguiente:

[gml]
if (!place_free(x+32,y) and place_meeting(x,y+1,Pared) and hspeed > 0) or (!place_free(x-32,y) and place_meeting(x,y+1,Pared) and hspeed < 0)
{
vspeed = -8
}
[/gml]

EDITADO
Título: Re:Como hacer que un enemigo al colisionar con una pared salte (Ayuda)
Publicado por: J.E.A en Agosto 15, 2012, 10:13:13 PM
Cita de: MaanuRP en Agosto 13, 2012, 08:03:11 PM
Mmm yo haria algo asi (No lo puedo probar porque no estoy en mi PC, asi que no estoy 100% que funcione).

Dandole gravedad como a un personaje normal (Algo de 0.5), en el evento step poner algo como lo
siguiente:

[gml]
if !(place_free(x+32,y) and vspeed > -12
{
vspeed -= 12
}

//O tambien

if place_meeting(x+32,y,objPared) and vspeed > -12
{
vspeed -= 12
}
[/gml]

Perdon por tardar, no me funcionaron los codigos, el enemigo sale volando para arriba hacia el infinito XD
Igual es medio complicado lo que quiero hacer, es que a la vez de que salte al colisionar con la pared el enemigo debería perseguir a mi personaje, de todas formas voy a probar bien tu codigo a ver si le saco o agrego algo mas el codigo de seguimiento a mi personaje, si no encuentro solucion les pongo el codigo completo del enemigo
Título: Re:Como hacer que un enemigo al colisionar con una pared salte (Ayuda)
Publicado por: MaanuRP en Agosto 15, 2012, 10:59:58 PM
Mejor aca te dejo un ejemplo, tu error fue que te olvidaste la gravedad. Sin ella, el enemigo jamas bajaria.

EDIT: Modifique el codigo, ya que solo funcionaba para la derecha, ademas de dejarlo mas "lindo". Ahora no salta si no esta colisionando con el suelo.
Título: Re:Como hacer que un enemigo al colisionar con una pared salte (Ayuda)
Publicado por: jorgeelalto en Agosto 16, 2012, 05:42:18 PM
gracias! me funcionó! :D :D
Título: Re:Como hacer que un enemigo al colisionar con una pared salte (Ayuda)
Publicado por: MaanuRP en Agosto 16, 2012, 06:09:45 PM
Cita de: jorgeelalto en Agosto 16, 2012, 05:42:18 PM
gracias! me funcionó! :D :D

Multicuenta? xD
Título: Re:Como hacer que un enemigo al colisionar con una pared salte (Ayuda)
Publicado por: SobacoEnLlamas en Agosto 16, 2012, 10:09:01 PM
J.E.A. - Jorge El Alto

O_o

Pillado!! xd