Vamos a crear un videojuego para defender la bandera, en este ejemplo será el planeta tierra, y tendremos que defenderlo de asteroides que nos atacan.
En este videojuego necesitaremos crear dos escenarios (un fondo básico y uno de GAME OVER) y cinco objetos:
x1 planeta para defender (galería de Sprites)
x1 asteroide que nos ataque
x1 personaje jugable, en este ejemplo un cohete (galería de Sprites)
x1 objeto que sirva de bala, para el ejemplo es un rectángulo rojo (como si fuese un láser)
x1 una estrella coleccionable, para mejorar la nave. (Galería de Sprites)
Por último, crear las siguientes variables globales:
delay asteroids
delay disparos
muerto?
Puntuación
Vidas
Empezaremos el proyecto creando los dos fondos que usaremos. El primer fondo será utilizado para el juego base, puede ser un fondo de color sólido o una imagen de internet. El segundo será la pantalla de GAME OVER, a vuestra elección. Se incluye el código de programación del escenario.
Primero programaremos el personaje jugable, el cohete. Este se tiene que mover con las flechas del teclado (para que sea más cómodo programar las letras “WASD” a modo de flechas) y disparar al tocar el clic del ratón.
Un bucle irá destinado a inicializar variables y el movimiento. Para programar esto, hay que seguir la imagen lateral. El bucle destinado a disparar lo haremos más adelante.
Hecho esto nuestra nave se tiene que mover por el escenario con las teclas y apuntar hacia el puntero del ratón.
🤔El bloque rojo de “añadir más bloques” no hay que ponerlo, 😗
😏 es para que penséis un poco que debéis poner ahí. 🤔
Ahora continuaremos por lo más básico. En la programación del planeta (el objeto que debemos proteger), haremos dos eventos muy sencillos, ya que no tiene ningún comportamiento este objeto.:
Al comenzar, lo llevaremos al punto (0, 0), fijamos el tamaño a lo deseado, haremos que se vea y lo llevaremos a la capa trasera para que no entorpezca en la visibilidad.
Al recibir el evento “fin de juego”, esconder el planeta.
Ahora programaremos la estrella, haremos que aparezca en lugares aleatorios del escenario cada 6 segundos, y que se quede ahí hasta que el cohete la recoja. Al recogerla modificaremos una variable llamada “delay disparos” para que cada vez que recojamos una estrella sea menor ese tiempo. Y así nos permite disparar más rápido. El código de la estrella es el siguiente:
En este siguiente paso lograremos que nuestro cohete dispare. La cadencia de tiro dependerá de cuántas estrellas se hayan recogido y de si el cohete está muerto o no. Como hemos creado un objeto que hará de bala, tenemos que decirle a través de un evento (“pium”) que actúe.
⚠️Aún no disparará porque no hemos programado⚠️
⚠️el evento “pium”⚠️
Para lograr que el cohete dispare programaremos el evento “pium”. Este evento va a afectar al objeto que hayamos creado como bala, para este caso, el láser. Y el código tendrá tres comienzos diferentes:
Al comenzar queremos que solamente se esconda.
Al recibir el mensaje “pium” queremos que salga una bala desde la nave hacia donde hemos hecho clic con el ratón. Pero como es posible que tengamos más de una bala en el escenario a la vez, debemos crear un clon.
El último evento será “al crear un clon” y el comportamiento será: ir a la posición de la nave, mostrar, apuntar hacia el ratón y luego continuamente mover 10 pasos y preguntarse cuándo será eliminado (si toca el borde del escenario o si toca a un asteroide).
👌Ahora sí, el cohete bebería tanto moverse como disparar cada 0.7 segundos (valor de “delay disparos”)👌
👌y si cogemos estrellas irá aumentando el número de disparos.👌
Ya solo nos queda programar el objeto que amenazará nuestra victoria, el asteroide. En esta ocasión también tendremos varios objetos iguales al mismo tiempo y habrá que crear clones. Y tendrá tres eventos:
En el primero, al comenzar, se esconde, se espera 3-4 segundos y continuamente crea un clon, esperando “delay asteroids” entre cada clon.
Para que vaya aumentando la dificultad se crearán clones cada menos tiempo, y por tanto hay que hacer un bucle que vaya modificando la variable “delay asteroids”.
El último bucle es para cada clon. (Imagen lateral➡️) El código es la imagen lateral. Como se aprecia cada vez que un asteroide es creado, se va a una posición aleatoria a 300 pasos de la tierra, y luego se va a aproximando al planeta lentamente mientras comprueba sus tres comportamientos posibles. Cuando se estrella contra la nave, y dos condiciones más de cuando se toque con el láser, o cuando toque el planeta que hay que completar.
Evento inicial para crear asteroides.
Evento para aumentar la dificultad.
Y por último, para terminar el juego, programaremos en el cohete dos eventos más que le afectan.
El primero es hacer que cuando se termine el juego (evento “fin de juego”) se esconda el Sprite.
El otro será la acción que ejecute cuando se envíe el evento “tas muerto”, que envíaba el asteroide cuando tocara el cohete.
El comportamiento de este evento tiene que ser, aparte de restar una vida, desaparecer durante un tiempo estimado y evitar que se pueda disparar (usamos la variable (“muerto?” a modo de flag). El código es el siguiente: ➡️➡️
✨Con esto ya debería funcionar nuestro juego al completo.✨
Puedes hacer que el juego tenga una pantalla de inicio, añadir efectos visuales cambiando los disfraces) o añadir efectos de sonido para que tu juego se vea más profesional.
Puedes probar el juego que he creado yo para ver las mecánicas y el resultado final. Para jugar presiona la bandera verde. 💚