Videojuego 2D en Canvas con arquitectura orientada a objetos: jugador, NPCs, balas y power-ups
Ejercicio de la asignatura de Lenguajes de Marcas: un videojuego 2D completo construido en 10 pasos con HTML5 Canvas y JavaScript puro, sin motor de juego.
La arquitectura es orientada a objetos con cuatro clases:
Jugador, Npc, Bala y PowerUp.
Cada una gestiona su propio estado y su dibujado, lo que evita el problema clásico
de estos ejercicios: un único bucle gigante con cincuenta variables globales.
Incluye bucle de render con requestAnimationFrame, control de FPS,
sprites propios, NPCs con movimiento autónomo, detección de colisiones, sistema de
vidas, frames de invencibilidad tras recibir daño, power-ups y
progresión por niveles.
Posición, sprite, vidas, estado de invencibilidad y respuesta a las teclas
mediante keydown y keyup.
Enemigos con movimiento autónomo, su propio sprite y detección de colisión con el jugador y con las balas.
Proyectiles con dirección y velocidad, que se eliminan al impactar o al salir de la pantalla.
Mejoras recogibles que modifican el estado del jugador.
Diez pasos, cada uno un HTML independiente, más los sprites del juego.
setInterval:
requestAnimationFrame se sincroniza con el refresco de la pantalla y el
navegador lo pausa cuando la pestaña no está visible.Autor del ejercicio. Práctica individual de la asignatura de Lenguajes de Marcas.
Ejercicio académico completado, con los diez pasos y los sprites en el repositorio de apuntes.
Ruta dentro del repositorio: Apuntes/008-Proyectos/001-Videjuegos/