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? ;)
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.
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.
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.