Cómo añadir comportamientos (behaviors)
Los comportamientos son funcionalidades predefinidas en Construct 2. Por ejemplo, puedes agregar un comportamiento Platform (Plataforma) a un objeto y el comportamiento Solid (Sólido) al suelo y tendrás rápidamente la base de un juego de plataformas. Puedes hacer lo mismo en los eventos (events), pero lleva más tiempo y no es necesario si el comportamiento es ya lo suficientemente bueno! Así que vamos a echar un vistazo a los comportamientos que podemos utilizar. Entre otros, Construct 2 tiene estos comportamientos:
- 8 Direction movement (Movimiento en 8 direcciones). Esto permite mover un objeto en hasta 8 direcciones, por medio de las teclas con flechas de desplazamiento. Adecuado para el movimiento de nuestro personaje.
- Bullet movement (Movimiento de bala). Esto simplemente mueve hacia adelante un objeto con su ángulo actual. Adecuado para el caso de "balas". A pesar del nombre, también es adecuado para el movimiento de "enemigos" - ya que dota a los objetos de un movimiento hacia adelante con velocidad constante.
- Scroll to . Esto hace que la cámara siga a un objeto que se mueve (también conocido como scrolling). Adecuado para aplicarlo a nuestro personaje.
- Bound to layout . Esto evitará que un objeto abandone el área del layout. Esto también será útil aplicado a nuestro personaje, para que no se salga del área de juego!
- Destroy outside layout . Esto hace que se destruya el objeto si se sale del layout. Es adecuado, por ejemplo, para el caso de "balas". Sin este comportamiento, las balas volarían fuera de la pantalla indefinidamente, consumiendo recursos de memoria y micro (cpu). Para evitar este consumo innecesario, debemos destruir las "balas" una vez que han dejado el área de juego.
- Fade . Esto hace que los objetos poco a poco se desvanezcan, nos vendrá muy bien para nuestras explosiones.
Vamos a añadir estos comportamientos a los objetos que los necesiten.
Cómo añadir un comportamiento
Vamos a añadir el comportamiento 8 direction movement al jugador. Haz clic en el jugador para seleccionarlo. En la barra de propiedades, fíjate en la categoría Behaviors (Comportamientos). Doble clic sobre Add/Edit (Añadir/Editar). El cuadro de diálogo de comportamientos del jugador se abrirá.
Haz clic en el icono en forma de cruz "Add New" en el cuadro de diálogo de comportamientos. Haz doble clic en 8 direction movement para añadirlo.
Haz lo mismo otra vez y en esta ocasión agrega el comportamiento Scroll To , para que la cámara siga al jugador y añade también el comportamiento Bound to layout , para mantenerlo dentro del layout. El cuadro de diálogo debería tener este aspecto:
Cierra el cuadro de diálogo. Clic en Ejecutar para probar el juego!
Damos por hecho que tienes un navegador compatible con HTML5 instalado. De lo contrario, asegúrate de obtener la última versión de Firefox o Chrome o Internet Explorer 9, si tienes Vista o superior. Una vez que tengas el juego en ejecución, observa que ya te puedes mover con las teclas de flechas y la cámara sigue al jugador! Tampoco se puede salir del área de juego, gracias al comportamiento Bound to layout. Por esto, es por lo que los comportamientos son buenos - añaden rápidamente un poco de funcionalidad.
Mas adelante, añadiremos funcionalidades personalizadas, por medio del sistema de eventos.
Añadiendo los otros comportamientos
Podemos añadir comportamientos a los otros objetos de la misma forma - selecciónalos, haz clic en Agregar / Editar para abrir su cuadro de diálogo y añade algunos.
Vamos a añadir otros comportamientos:
- Añadir Bullet movement y Destroy outside layout para el objeto Bala (como es evidente)
- Añadir Bullet movement para el objeto Monster (ya que sólo se mueven hacia adelante)
- Añadir el comportamiento Fade al objeto Explosion (por lo que desaparecerá gradualmente después de aparecer). Por defecto, el comportamiento fade también destruye el objeto después de que se ha desvanecido, lo cual nos ahorra tener que preocuparnos acerca de las explosiones invisibles que podrían obstruir el juego.
Si se ejecuta el juego, observarás que lo único diferente es que cualquier monstruo que puedas ver en pantalla, saldrá de ella rápidamente. Vamos a reducir esta velocidad a un ritmo mas pausado. Selecciona el objeto Monster. Fíjate como tan pronto añadimos un comportamiento, algunas propiedades adicionales han aparecido en la barra de propiedades:
Esto nos permite modificar cómo trabajan los comportamientos. Cambiar la velocidad de 400 a 80 (esto es en píxeles recorridos por segundo).
Del mismo modo, cambiar la velocidad del objeto Bullet a 600 y en el objeto Explosion cambiar el tiempo de fundido Fade out time a 0.5 )(medio segundo).
Crear unos cuantos monstruos mas
Manteniendo pulsada la tecla control, hacer clic y arrastrar el objeto Monster. Con ello se generará una nueva instancia del objeto Monster. Esto es simplemente otro objeto de tipo Monster.
Los tipos de objetos son esencialmente "clases" de objetos. En el sistema de eventos, se trabaja principalmente con tipos de objetos. Por ejemplo, es posible hacer un evento que sea "Bullet colisiona con Monster". Esto en realidad significa " Cualquier instancia del 'tipo de objeto' Bullet colisiona con cualquier instancia del 'tipo de objeto' Monster " - en lugar de tener que realizar un evento separado para cada uno de los monstruos. Con Sprites, todas las instancias de un tipo de objeto también comparten la misma textura. Esto es muy bueno para la eficiencia - cuando los jugadores juegan su juego en línea, en lugar de tener que descargar 8 texturas monstruo para 8 monstruos, sólo se necesita descargar una textura monstruo y Contruct 2 la repetirá 8 veces. Ahondaremos mas sobre la diferencia entre 'tipos de objetos' y sus 'instancias' mas adelante. De momento, un buen ejemplo para pensar sobre ello, es que diferentes tipos de enemigos son diferentes tipos de objetos, de modo que en nuestro caso al tener sólo un tipo de enemigo (el monstruo), todos los enemigos que nos puedan aparecer serán instancias de un mismo tipo de objeto. Y puede haber un montón, como lo será en nuestro caso.
Usa la tecla Ctrl + arrastrar, para crear 7 u 8 nuevos monstruos. No los coloques demasiado cerca del jugador para evitar que este muera nada mas iniciarse el juego! Puedes alejar la imagen con Ctrl + rueda del ratón hacia abajo y distribuirlos por todo el layout . Obtendrás algo similar a esto.
Ahora es el momento de agregar funcionalidades personalizadas a través del método visual de programación de Contruct 2 - el sistema de eventos (event system).