Asteroids: recorrer y actualizar objetos
Pilota una nave azul y destruye seis asteroides en 45 segundos. Tienes tres vidas.
Gira con ← / → o A / D, acelera con ↑ o W y dispara manteniendo Espacio.
También puedes combinar los botones táctiles. Los bordes del campo están conectados:
si sales por un lado, reapareces por el opuesto.
La primera victoria suma 5 puntos. Perder o empatar no consume la recompensa.
Puedes volver a jugar tantas veces como quieras; las victorias siguientes son de práctica.
Inicia sesión para guardar los puntos.
Colecciones que cambian durante la partida #
game.js mantiene arrays de asteroides y proyectiles. Un bucle for...of mueve los
objetos; otro revisa si los proyectiles chocan con algún asteroide. Cada proyectil tiene
una vida limitada, y filter() elimina los que ya no se utilizan.
physics.js se encarga de las posiciones, las distancias y la nave. El ángulo determina
la dirección: Math.cos() calcula la componente horizontal y Math.sin() la vertical.
El módulo limita la velocidad y conecta los bordes del campo.
Las colisiones aproximan los objetos mediante círculos. Tras perder una vida, la nave
reaparece con dos segundos de protección para evitar varias pérdidas inmediatas.
El intervalo entre disparos impide crear un proyectil en cada paso de física.
renderer.js dibuja estrellas, polígonos, proyectiles y una nave triangular. No modifica
las reglas. controls.js permite combinar giro, aceleración y disparo; el adaptador
../shared/arcade.js ejecuta el mismo bucle del navegador usado por Snake y Flappy Bird.
Para investigar #
¿Por qué eliminamos los proyectiles antiguos? ¿Cómo influye cooldown en la frecuencia
de disparo? Cambia el dibujo de la nave sin tocar physics.js y comprueba que sus reglas
siguen funcionando igual.
Ejecutarlo y modificarlo en tu ordenador #
El visor muestra el código que utiliza esta partida. Descarga los archivos respetando
el árbol de carpetas. Para los juegos con archivos ../shared/, guarda esa carpeta junto
a la carpeta del juego. Por ejemplo: games/snake/ y games/shared/.
Sirve la carpeta games con un servidor HTTP local. Si tienes Python 3 instalado,
puedes ejecutar python3 -m http.server 8000 desde esa carpeta y abrir la subcarpeta
del juego en el navegador. La versión independiente funciona sin instalar librerías;
los puntos del curso se guardan únicamente desde la plataforma.