Bienvenidos sean a este post, nuestro ultimo recurso sera la posibilidad de tener una puerta para pasar a otro nivel y utilizar una llave para poder abrirla.
En realidad esto no es muy distinto de lo que vimos hasta ahora, debemos tener un objeto que sera una puerta, la cual solo se abrira si poseemos una llave (otro objeto) y una vez abierta nos sacara del nivel actual para pasar a uno nuevo, vamos a crear primero un sprite que sera la puerta, en este caso debemos hacerlo de 64 x 64, y lo llamaremos spr_Puerta, editen la imagen para dejarla como una puerta les dejo la que hice yo

Por ultimo modifiquen en Collision Mask la opcion Mode de Automatic a Manual, lo siguiente sera crear un objeto para la puerta, creamos uno nuevo y lo llamaremos obj_Puerta, a este le asignaremos el sprite que creamos, lo hacemos solido y por ultimo lo debemos ubicar en nuestro laberinto, por ejemplo de esta forma

Lo siguiente sera crear el objeto que sera la llave, primero crearemos un sprite para la esta, la llamaremos spr_Llave, la haremos de 8 x 16, de nuevo editamos la imagen para hacer algo semejante a esto

De nuevo establecemos la Collision Mask de Modo Automatico a Manual, el siguiente paso sera crear un objeto al cual llamremos obj_Llave, le asignaremos el sprite de la llave y por ultimo la agregaremos al laberinto, les muestro un ejemplo

Ya tenemos los objetos creados y ubicados, lo siguiente sera crear los eventos de colision para poder agarrar la llave y otro para salir por la puerta, pero antes vamos a crear un nuevo Room, para ello vayan al Asset Browser, busquen la carpeta Rooms, hacen click con el boton derecho sobre esta y seleccionen Create -> Room, la llamaremos Room2 y le agregaremos el objeto del jugador, obj_Cj, dejando solamente al jugador en el medio, lo siguiente sera volver a nuestro objeto obj_Cj, iremos al evento Create y agregaremos la accion Assign Variable con los siguientes parametros:
- Name: tiene_llave
- Value: 0
Esta variable sera la encargada de permitir salir o no por la puerta, mientras sea igual a 0 no podremos, cuando lo pasemos a 1 sera posible, la siguiente modificacion sera agregar un evento de tipo Colision pero con el objeto obj_Llave, en esta agregaremos otro Assign Variable, al cual llamaremos tambien tiene_llave pero le asignaremos el valor de 1, lo siguiente sera agregarle un Destroy Instance, presionamos la flecha hacia abajo y en la nueva ventana seleccionamos Other, esto eliminara el objeto de la llave, debera quedar de la siguiente manera

Nuestra siguiente modificacion sera agregando un nuevo evento de colision pero esta vez para el objeto obj_Puerta, una vez hecho primero agregaremos la accion If Object At Place, lo configuramos de la siguiente manera:
- Object: obj_Puerta
- X: x
- Y: y
- Return List (sin tildar)
En este condicional vamos a agregar es la accion Set Speed, donde Type sera Direction y en Value usaremos el valor 0, despues de este agregaremos un condicional If Variable donde estableceremos como variable a tiene_llave y usaremos a equal y en Value le pondremos 1, esto simboliza que si la tiene_llave es igual a 1 llamara a la siguiente accion, en este caso agregaremos a Go To Room de las acciones de Rooms, una vez hecho esto nos aparecera para decir a cual, presionan en el unico boton y seleccionen a Room2, con esto ya tenemos terminado todas las colisiones, solo nos resta probarlo y lo haremos mediante el siguiente video
En el video podemos ver el producto terminado porque no solamente tenemos las acciones anteriores sino tambien una puerta que solo se abrira con la llave del laberinto y una vez abierta nos pasa al siguiente nivel, por si desean compararlo con lo creado durante esta serie de posts les dejo el archivo con el proyecto finalizado:
En resumen, hoy hemos terminado nuestro primer juego, ya podemos crear objetos que nos permitan el acceso a otro nivel o tambien podrian servir para delimitar el acceso a una parte del mismo, hemos visto como manipular las variables por medio de Drag and drop, tambien hemos visto como pasar a otro nivel, espero les haya gustado sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.


Donación
Es para mantenimento del sitio, gracias!
$1.00
