Paso 10: Programación - las funciones de dibujo
El bosquejo sí mismo se une a este paso. Es bastante poco comentado pero los nombres de variable y función deberían explicarse bastante y creo que bastante sencilla así que se siente libre de adaptarlo según sea necesario. Por favor tenga en cuenta que sólo se extiende de alrededor de 20-30 minutos a la vez en mi viaje a escribir bosquejos por lo que probablemente no es una pieza más elegante o sistemática del código. Funciona bastante bien pero usarlo bajo su propio riesgo!
En general, las funciones principales del código hacen lo siguiente:
void setup():
Esto simplemente inicia la pantalla LCD y establece el pinMode interruptores etc.. Jugaría un "Hola" sonido si uno se encuentra, muestra el voltaje actual de la batería y prueba brevemente la luz de fondo. Lee los puntajes, luz de fondo brillo y volumen del sonido de EEPROM e inicializa la EEPROM si este chip no ha sido utilizado para el juego antes.
void loop():
Cada función de la consola tiene un tipo de "juego". Esto incluye el menú principal y el menú de configuración. El bucle principal simplemente nos dirige a la subrutina correspondiente. Al regresar de una subrutina que necesitamos establecer el tipo de juego correcta (por ejemplo gameType = 0 para el menú principal).
void pong():
Esto lee la posición del palo de jugador 1 y modo manual o automático de murciélago jugador 2. Entonces comprueba la posición de la bola, comprueba cuánto tiempo el juego ha sido jugado (aumentando la velocidad cada 30s) y actualiza la pantalla. La variable frameDelay es el período en ms entre marcos y después de actualizar la pantalla, espera a que dicho período expire antes de comenzar otra vez.
anular (invasores):
Similar al juego Pong, ciclos ronda leyendo la posición del murciélago (jugador), comprobando el estado de los tiros y las bombas, vidas, comprobar si el juego debería acelerar, mover a los alienígenas y actualización de la pantalla de actualización. Los extraterrestres mover un píxel a través de en un momento, pero animan solamente cada 4 píxeles por lo que simplemente no desdibujan y mejor se asemejan a los del juego original. Como se describe en el último paso, los extranjeros se llevó a cabo y muestra como personajes, como son la puntuación y las vidas de repuesto. El murciélago y el OVNI se dibujan con líneas. El OVNI encaja en el espacio 3-píxeles por encima de la fila superior de los extranjeros, que hemos adquirido mediante la definición de una fuente muy pequeña para la puntuación.
void checkBatt():
Esto controla el voltaje de la batería y solicita al usuario a apagar y cargar si el voltaje cae por debajo de 3.6v.