En el tutorial anterior lo último que hicimos fue hacer que las cañerías se movieran hacia la izquierda, pero solamente aparecen una vez. Queremos crear nuevas cañerías cada cierto tiempo. Para esto, agregaremos un nuevo evento. Selecciona System y luego Every X Seconds. Cambia el valor a 1.5 (puedes poner un valor menor para hacerlo más difícil o uno mayor si lo quieres hacer más fácil).
Para la acción, elije System, luego Create object y elije arriba. Mantén Layer en 0 y cambia X a 500 y luego Y ponlo en random(50, -300)
Agrega otra acción para este evento, System, luego Create object y elije abajo. Mantén Layer en 0 y cambia X a 500 y luego Y ponlo en abajo.Y + 800
Para poder probar el juego puedes deshabilitar las colisiones con las cañerías. Para esto selecciona abajo, y luego en la propiedades busca Collisions y déjalo en Disabled. Repite lo mismo con arriba.
Recuerda que antes de terminar el juego tienes que devolverlas a Enabled.
Nos falta resolver una cosa más con respecto a las cañerías. Las estamos creando cada 1.5 segundos, pero no las estamos destruyendo una vez que salen de la pantalla. Esto es importante porque consumen recursos del computador y harán que el juego ande más lento.
Agrega dos eventos:
- Elije arriba, luego Compare X. En Comparison elije Less than y en el valor -50. En la acción elije arriba y luego Destroy.
- Elije abajo, luego Compare X. En Comparison elije Less than y en el valor -50. En la acción elije abajo y luego Destroy.
Agregar Puntaje
Ahora necesitamos mostrar el puntaje en alguna parte.
Asegúrate de seleccionar el layer UI, ahí es donde tenemos que agregar los elementos de interfaz de usuario (puntajes, vidas, ayudas, etc).
Haz doble clic en el layout para agregar un nuevo objeto. Elije Text. Posiciónalo en la esquina superior izquierda. Cambiale el nombre haciendole clic derecho en la barra de objeto y luego elije Rename. Ponle TextoPuntaje de nombre.
Ahora en las propiedades cambia el Font a Arial 14 y el Text a Puntaje: 0.
Ahora necesitamos que de alguna manera se vaya actualizando el texto.
Para eso necesitamos guardar el valor del puntaje en una variable.
Para esto haz clic derecho en el listado de eventos Eventos Juego y elije Add global variable.
En la ventana ponle de nombre puntaje y deja el resto como está.
Vamos a sumar 1 punto a puntaje cada vez que el pájaro pase por un par de cañerías. Para hacer esto podemos comparar que la coordenada X de ave sea mayor que la coordenada de arriba. Pero necesitamos sumar puntos sólo una vez por cada cañería, entonces necesitamos marcar de alguna forma si una cañería la hemos contabilizado para sumar el puntaje o aún no. Para esto necesitamos agregar una variable a cada instancia de la cañería arriba.
Haz clic derecho en arriba en la barra de objetos, luego elije Instance variables. En la ventana haz clic en el ícono +. Luego en el nombre pon puntajesumado, en Type elije Boolean (significa que sólo puede valer verdadero o falso) y en el valor inicial pon false (falso).
Crea un nuevo evento. En la condición elije arriba y Compare X, luego Less or equal y luego en el valor pon ave.X
Agrégale una condición más (hazle clic derecho a la condición que recién agregaste y elije Add another condition). Elije arriba, luego Is boolean instance variable set, después elije puntajesumado. Pero necesitamos que la condición se active cuando puntajesumado NO sea verdadero, entonces hazle clic derecho a la condición recién agregada y elije Invert.
A este evento agreguemosle las acciones.
- Elije System, luego Add to, después elije puntaje y en el valor pon 1
- Elije TextoPuntaje, luego Set text, y escribe "Puntaje: " & puntaje
- Elije arriba, luego Set boolean, y después elije puntajesumado y en el valor pon True.
Listo!
Prueba tu juego. Ya está listo.
Si quieres revisar cómo me quedó a mí el nivel, puedes bajar aquí el archivo .capx con mi proyecto del juego.
Algunas ideas para mejorar tu juego:
- Podrías hacer que se vaya haciendo cada vez más rápido. Par aetso podrías agregar una variable que se llame velocidad_canerias que parta siendo 5 (como ahora) y cada X segundos le sumas uno.
- Agregar enemigos, podrías hacer que se mueven en el eje Y con el comportamiento Sine.
- Puedes agregar nubes en el layer de Fondo. Y podrías hacer que se vayan moviendo a la izquierda con el comportamiento Bullet.
- Animar al personaje. Que al hacer clic se incline hacia arriba y a medida que cae su nariz se vaya hacia abajo.
- Hacer una pantalla de menú más interesante! Podrías agregar a nuestro amigo alado, quizás diciendo algo o con una animación simpática.