Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: ian12 en Enero 23, 2015, 05:50:56 PM

Título: ¿View estilo Mario Bros (No se puede retroceder)?
Publicado por: ian12 en Enero 23, 2015, 05:50:56 PM
Hola!

Quisiera saber como hacer para que en mi juego de plataforma, el personaje no pueda retroceder en el escenario por donde ya pasó (como por ejemplo en Mario Bros)..


Gracias.





Título: Re:¿View estilo Mario Bros (No se puede retroceder)?
Publicado por: Marth en Enero 23, 2015, 10:51:48 PM
Podrías hacer que haya un objeto "Camara" que al siguiese la cámara y que:

if(Jugador.x>Camara.x) Camara.x=Jugador.x
Título: Re:¿View estilo Mario Bros (No se puede retroceder)?
Publicado por: ian12 en Enero 24, 2015, 02:49:06 PM
Cita de: Marth en Enero 23, 2015, 10:51:48 PM
Podrías hacer que haya un objeto "Camara" que al siguiese la cámara y que:

if(Jugador.x>Camara.x) Camara.x=Jugador.x



Sirve en lo que respecta a la cámara, pero no evita que el jugador pueda retroceder por el escenario, aunque la cámara no lo siga.. Ese es el problema :C
Título: Re:¿View estilo Mario Bros (No se puede retroceder)?
Publicado por: Marth en Enero 24, 2015, 03:23:04 PM
Pues usa un evento outside view al que pondras una instrucción como:

x=xprevious
Título: Re:¿View estilo Mario Bros (No se puede retroceder)?
Publicado por: ian12 en Enero 24, 2015, 04:06:30 PM
Cita de: Marth en Enero 24, 2015, 03:23:04 PM
Pues usa un evento outside view al que pondras una instrucción como:

x=xprevious


Tiene sentido.. Pero no surte efecto.
Título: Re:¿View estilo Mario Bros (No se puede retroceder)?
Publicado por: TheSandBoxMKG en Enero 24, 2015, 08:54:55 PM
Es dificil resistirse a game maker  XD, bueno, aparte de eso, aqui te ayudo:
[gml]if bbox_left < view_xview then x=view_xview+sprite_xoffset //para evitar que salgas del lado izquierdo del view
if bbox_right > view_xview+view_wview then x=view_xview+view_wview-sprite_width+sprite_xoffset //para evitar que salgas del lado derecho del view
if view_xview < x-view_wview/2 then view_xview=min(x-view_wview/2,room_width-view_wview) //para mover el view (obviamente en una sola direccion)[/gml]
EDIT: Acordate de poner estos valores a cero en la view:
(http://s21.postimg.org/9u6mkvw5z/zero.png)
Título: Re:¿View estilo Mario Bros (No se puede retroceder)?
Publicado por: TheSandBoxMKG en Enero 26, 2015, 08:18:06 PM
[gml]if bbox_left < view_xview then x+=view_xview-bbox_left //para evitar que salgas del lado izquierdo del view
if bbox_right > view_xview+view_wview then x+=view_xview-bbox_right //para evitar que salgas del lado derecho del view
if view_xview < bbox_right-view_wview/2 then view_xview=min(bbox_right-view_wview/2,room_width-view_wview) //para mover el view (obviamente en una sola direccion)[/gml]
El codigo mejorado
Título: Re:¿View estilo Mario Bros (No se puede retroceder)?
Publicado por: vitito93 en Mayo 22, 2015, 02:24:01 AM
Simple, solos tenes que poner un objeto que vaya controlando, es decir, creas un objeto que siga al personaje solo si la direccion DEL PERSONAJE es derecha o 1... si es -1 o izquierda, seguir= false
y en el step del objeto controlador, if obj_seguir.seguir =true { view_object[0]=obj_player} else {Creo que este es el comando para que siga al objeto ---> view_object[0]=obj_seguir} (este no se va a mover cuando el personaje vaya a la izquierda, por ende no se mueve la view)
Título: Re:¿View estilo Mario Bros (No se puede retroceder)?
Publicado por: 3dgeminis en Mayo 22, 2015, 03:00:02 AM
Te dejo un ejemplo. Usa un objeto que servira de "camara", ademas el jugador no puede retroceder, "chocando" con el borde de la view.