Creando un heads-up display (HUD)
Un heads-up display (HUD) es la parte de la pantalla que nos muestra la salud del jugador, la puntuación y otra información del juego. Haremos uno sencillo con un objeto de texto.
El HUD siempre aparece en el mismo lugar de la pantalla. Si tenemos algunos objetos de interfaz no queremos tener que desplazarnos cuando el jugador se mueva - debería de estar fijo en la pantalla. Por defecto, los layers se desplazan. Para mantenerlo en pantalla podemos usar el ajuste de capa Parallax. Normalmente el parallax sirve para hacer que diferentes capas se desplacen a velocidades diferentes y con eso dar la idea de que están a distintas distancias de la cámara. Por ejemplo, en juegos de carrera 2D, los cerros que están al fondo se mueven más lento que las capas de más adelante paradar la idea que están más atrás.
Si ajustamos Parallax a cero la capa no se moverá - ideal para un HUD.
Volvamos a la barra de Layers que usamos antes. Añade un nuevo Layer llamado HUD. Asegúrate que está arriba de las otras (para que se muestre por encima) y selecciónala (recuerda que esto la hace la capa activa).
La barra de Propiedades debería mostrar sus propiedades. Ajusta la propiedad Parallax a 0,0.
Doble clic en algún sitio del layout para colocar un nuevo objeto. Esta vez elige el objeto Text (texto). Sitúalo en la esquina superior izquierda del layout. Será difícil de ver si el texto es negro, así que en la barra de propiedades cambiale el Color a un amarillo y en Font ponle Bold (negrita) y elige un tamaño de letra más grande (por ejemplo 36). Luego toma el borde del objeto Text y rediménsionalo para que tenga suficiente ancho para que entre suficiente texto. Debería de verse algo como:
Volvamos a la página de eventos. Mantendremos el texto actualizado con la puntuación del jugador. En el evento Every tick que añadimos antes, añade la acción Text -> Set text.
Usando el operador & podemos convertir un número a texto y unirlo a otro texto. Así que para el texto, escribe:
"Puntaje: " & puntaje
El evento debería quedarte así:
La primera parte ("Puntaje: ") significa que el texto siempre empezará con ese texto. La segunda parte (Puntaje) es el valor actual de la variable global Puntaje. El & los une en un texto único.
Prueba el juego y dispara a algunos monstruos. Se muestra tu puntuación y permanece en el mismo lugar de la pantalla!
Toques finales
Ya casi está hecho, incluiremos algunos toques finales.
Primero haremos que cada cierto tiempo "nazcan" algunos monstruos porque de otra forma una vez que matemos a todos no habrá nada más que hacer. Crearemos un nuevo monstruo cada 3 segundos. Añadir un nuevo evento:
Condición: System -> Every X seconds -> 3
Acción: System -> Create object -> monster, layer: 1, 1400 (para X), random(1024) (para Y)
1400 es una coordenada X al lado del límite del layout (así pareciera que vienen desde afuera) y random(1024) es una coordenada Y aleatoria que va entre 0 y la altura del layout (que es 1024).
Por último haremos que los fantasmas maten al jugador.
Condición: monster -> On collision with another object -> player
Acción: player -> Destroy
Todos tus eventos debieran verse así:
Conclusión
¡Felicitaciones! Has creado tu primer juego en Construct 2.
Has aprendido los conceptos básicos sobre Construct 2: colocar objetos, usar layouts, comportamientos, eventos y más. Esto te deja bien preparado para aprender más sobre Construct 2. Sigue explorando y practica estas características y mira lo que puedes hacer con ellas.
Una última cosa
Intenta descargar este proyecto del tutorial avanzado. Se han añadido algunas características extras como un texto cuando pierdes y monstruos que se aceleran gradualmente. Sabiendo lo que ya sabes no te debería ser difícil averiguar como funcionan.
Bien! Si tienes algún problema o piensas que alguna parte de este tutorial puede ser mejorada, deja un comentario o un mensaje en el foro.
Algunas ideas para mejorar este juego:
- Agregar más tipos de enemigos. Que tal si hay un enemigo de te dispara? O uno que desaparece por unos instantes para que no puedas dispararle?
- Podrías tener vidas y que cada cierto rato aparece una en el nivel y puedes tomarla.
- Podrían haber distintos niveles con diferentes enemigos.
- Podrías agregar obstáculos.