Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: J.E.A en Junio 16, 2010, 08:55:23 PM

Título: Como hago para cuando muevo cajas segun cuantas sean a tal punto,, pase de nivel
Publicado por: J.E.A en Junio 16, 2010, 08:55:23 PM
Estoy empezando a hacer un juego Puzzle de empujar cajas y quiero que por ejemplo: en el room, hay 4 cajas y hay 4 lugares para meterlos, en mi caso son 4 puntos que indican que se meten ahi. Quiero que cuando meto todas las cajas en los lugares correspondientes pase al siguiente nivel.
?Como lo hago? ;)
Título: Re: Como hago para cuando muevo cajas segun cuantas sean a tal punto,, pase de nivel
Publicado por: kaliman777 en Junio 17, 2010, 06:45:13 PM
Hay varias formas de hacerlo:

Una es usando variables y comparando espacios.

Podr?as usar una variable en CREATE// cajitas=4

Luego en step verificar si una caja ha sido puesta en una coordenada cualquiera (en el hueco). Cada vez que una queda en su hueco o espacio, la variable baja una unidad.

Algo as?:

if instance_place(x,y,caja)
{
cajitas-=1;
}

if cajitas=0
{
room_goto(x)
}

Alguno de nuestros makeros m?s expertos podr?a mejorar estos c?digos.

Suerte muchacho.
Título: Re: Como hago para cuando muevo cajas segun cuantas sean a tal punto,, pase de nivel
Publicado por: LuisYx en Junio 17, 2010, 08:00:47 PM
kaliman777, en realidad eso no funcionaria, puesto que en
cada step restarias 1 a la variable cajitas, y si ese no fuera el
caso, por ejemplo, pongo la caja en el punto, la saco y la vuelvo
a poner seria un bug para pasar de nivel.

Lo que yo te recomendaria es esto.

Crear un objeto verificador.
Ev. Create:

if room = room1 { pasar = 4 }
if room = room2 { pasar = 3 }
//Y asi tevas consecutivamente.

Ev. Step:

if pasar = 0 { if room = room1 { room_goto(room2) }
               if room = room2 { room_goto(room3) }
               //Y asi te vas igualmente.         }


Objeto de los puntos.
Ev. Create:

candado = 0

Ev. Step:

if collision_line(x-2,y-2,x+2,y+2,obj_caja,1,0) { candado = 1 } else { candado = 0 }
if candado = 1 { obj_verificador.pasar -= 1 } else { obj_verificador.pasar += 1 }


Seg?n yo, con eso no vasa tener problemas y te aseguraras que tengan que estar las cajas
alineadas con los puntos.
Título: Re: Como hago para cuando muevo cajas segun cuantas sean a tal punto,, pase de nivel
Publicado por: J.E.A en Junio 18, 2010, 03:03:13 AM
Gracias a los dos, el de Kaiman777 me funciona como que por momentos, pero es raro como que al estar colocadas las cajas no pasa de nivel y a veces me pongo al lado de una caja y paso de nivel pero a veces pasa eso   :-\.

Dejo el adjunto a ver si pueden verificarlo.

Ah, esta bien que haya que poner el objeto verificacion como un objeto en el Room? Porque si los saco me da error en una variable.