Kit de MPAGD
MPAGD SHMUPKIT
Un proyecto de Multi Platform Arcade Game Designer para crear shoot 'em ups verticales, empezando por el ZX Spectrum.
Qué incluye
- Nave del jugador con movimiento a izquierda y derecha e impulso hacia arriba.
- Misiles del jugador, disparados al pulsar una tecla.
- Enemigos con patrones de movimiento construidos a partir de 16 direcciones.
- Un generador de enemigos que controla cuáles aparecen.
- Un campo de estrellas con scroll en el bucle principal.
- Vidas, un mensaje de fin del juego y una pantalla de reinicio.
- Progresión de niveles y oleadas de ataque.
- Redefinición de teclas en el menú de introducción.
- Un contador de sprites y un conjunto documentado de variables globales.
Guía de desarrollo
- MPAGD Shmupkit Dev Guide
- Referencia de variables
- Evento de inicialización del juego
- Evento del menú de introducción
- Evento de la pantalla de reinicio
- Bucle principal 1
- Bucle principal 2
- Evento de inicialización de sprite
- Evento del jugador
- Evento del misil del jugador
- Evento del generador de enemigos
- Evento del enemigo
- Evento del misil enemigo
- Evento de matar al jugador
- Evento de partida perdida
Cómo ejecuta el kit tu juego
Cada fotograma sigue el mismo camino. Selecciona un evento para ver qué hace.
Arranque
En cada fotograma: los bucles principales
En cada fotograma: cada sprite
Cuando termina el juego
Inicialización del juego
La variable L sirve para llevar la cuenta y hacer progresar los niveles y oleadas de ataque del juego: cuando el jugador sobrevive a un nivel con éxito, pasa al siguiente. Por eso, naturalmente, queremos empezar en el nivel 1 (L=1)
Menú de introducción
Este es un menú de introducción bastante estándar de MPAGD, pero he añadido los comandos para redefinir teclas. ¡Deja siempre que tus jugadores redefinan sus teclas!
Inicialización de sprite
Lo importante aquí es que incluimos 'ADD 1 TO S' para que cada sprite que se inicializa se sume al contador de sprites (S). Lo usamos en todo Shmupkit para llevar la cuenta de cuántos sprites hay en pantalla en cada momento, ya que MPAGD tiene un máximo de 12 sprites en pantalla a la vez, PERO yo...
Bucle principal 1
He intentado mantener el bucle principal lo más simple posible, y he añadido un campo de estrellas que avanza hacia abajo con el comando STAR DOWN.
Jugador
El evento Player es bastante sencillo. Hay controles para el movimiento a izquierda y derecha, y para el impulso hacia arriba con la tecla de arriba, que está limitado a la mitad de la pantalla, aunque por supuesto puedes cambiarlo.
Misil del jugador
El misil del jugador se define en Sprite Type 1. Usa una imagen de sprite sencilla de 16x16 y se lanza cuando el jugador pulsa la tecla de disparo.
Generador de enemigos
Esta es la sala de máquinas de Shmupkit. El Spawner en sí es un sprite en blanco, y su evento controla qué enemigos deben aparecer, dónde, cuántos, y configura todos los parámetros que controlan al enemigo y que se pasan al evento Enemy.
Enemigo
Los alienígenas siguen un patrón de movimiento que es una combinación de movimientos direccionales, Dirección 0-15, cada una representando un punto de una brújula de 16 puntos, y un número de repeticiones.
Misil enemigo
Los misiles enemigos bajan por la pantalla bastante rápido. Cuando los lanza un enemigo, le pasamos al misil la dirección de movimiento del enemigo y hacemos que el misil se desvíe a izquierda o derecha en consecuencia: si el enemigo iba hacia la izquierda cuando disparó, el misil también se desviará hacia la izquierda.
Matar al jugador
¿Qué pasa cuando matan al jugador? Reducimos sus vidas y actualizamos el contador de vidas en pantalla
Partida perdida
Un sencillo mensaje de GAME OVER, parecido al de GET READY del evento Restart Screen:
Pantalla de reinicio
Este evento se ejecuta cuando el juego arranca por primera vez o se reinicia después de que maten al jugador.
Variables globales
Las variables que usa Shmupkit, con las libres reservadas para tu juego.
| A | Libre para tu propio uso |
|---|---|
| B | Libre para tu propio uso |
| C | Color del enemigo |
| D | Muertes necesarias para el bonus |
| E | N.º de enemigos en la oleada |
| F | Enemigos restantes |
| G | Retraso en la aparición de enemigos |
| H | Probabilidad de disparo del arma enemiga |
| I | Distancia en X para activar el arma enemiga |
| J | Tipo de sprite del enemigo |
| K | Imagen del enemigo |
| L | Nivel/oleada |
| M | X del jugador para usar en otros eventos |
| N | Y del jugador para usar en otros eventos |
| O | Libre para tu propio uso |
| P | Puntos por matar |
| Q | Altura para el lanzamiento del arma alienígena |
| R | Libre para tu propio uso |
| S | Contador de sprites |
| T | Disparador |
| U | Libre para tu propio uso |
| V | Libre para tu propio uso |
| W | Arma enemiga |
| Z | Música (reservada) |
