Flappy Bird: gravedad y bucles
Un pájaro amarillo avanza entre tubos. Pulsa Espacio, ↑ o W, toca el campo o utiliza
el botón para aletear. Cada pulsación da un impulso hacia arriba; entre pulsaciones,
la gravedad lo hace caer. Cruza cinco parejas de tubos en 45 segundos, sin tocar
los tubos ni salir del campo.
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.
Un paso pequeño, repetido muchas veces #
game.js separa la velocidad de la posición: primero suma la gravedad a la velocidad;
después suma la velocidad a la altura. Aletear cambia la velocidad a un valor negativo.
Los tubos se desplazan hacia la izquierda y se eliminan cuando salen de la pantalla.
hitsPipe() comprueba si el pájaro comparte la zona horizontal de un tubo y está fuera
de su hueco vertical. Cada tubo guarda passed: de esa manera atravesarlo suma una
sola vez al marcador de la partida.
En ../shared/arcade.js, un while ejecuta los pasos de física pendientes siempre que
quede tiempo acumulado y la partida siga activa. requestAnimationFrame() solicita el
siguiente dibujo sin bloquear el navegador. Pausar o cambiar a otra pestaña detiene
el avance del tiempo de juego.
config.js reúne la gravedad, el impulso y el tamaño de los huecos; controls.js define
pulsaciones individuales. renderer.js dibuja el pájaro y los tubos con Canvas 2D.
Para investigar #
¿Qué cambia si aumentas la gravedad pero mantienes el mismo impulso? ¿Por qué el tubo
necesita una marca passed? Amplía el hueco en tu copia local y compara la dificultad.
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.