Stap 10: Programming - de schets-functies
De schets zelf is aangesloten op deze stap. Het is vrij licht heeft gereageerd, maar de variabele en functie namen moeten worden vrij spreekt voor zich en ik denk dat het heeft vrij rechttoe-rechtaan dus gerust zo nodig aan te passen. Gelieve Houd in gedachten dat ik alleen maar strekt zich uit van rond 20-30 minuten op een moment op mijn pendelen naar het schrijven van sketches, dus het is waarschijnlijk niet het meest elegante of systematische stukje code. Het werkt vrij goed, maar gebruik het op eigen risico!
In het algemeen, de belangrijkste functies van de code als volgt:
VOID Setup:
Dit gewoon initieert het LCD-scherm en stelt de pinMode voor wissels en kruisingen enz. Het zou een "Hallo" geluid afspelen als een is ingesteld, wordt weergegeven van de huidige accuspanning en kort de achtergrondverlichting test. Het leest de hoge scores, helderheid van de achtergrondverlichting en het geluidsvolume vanaf EEPROM en de EEPROM vooruitgangsbalk als deze chip niet is gebruikt voor het spel voor.
void loop:
Elke functie van de console heeft een "gameType". Het gaat hierbij om het hoofdmenu en het instellingenmenu. De hoofdlus stuurt ons gewoon aan de juiste subroutine. Bij terugkeer van een subroutine moeten we de juiste gameType (bijvoorbeeld gameType = 0 voor hoofdmenu).
VOID pong():
Dit leest de positie van de speler 1 vleermuis en de handmatige of automatische positie van speler 2 bat. Vervolgens controleert de positie van de bal, controleert hoe lang het spel is gespeeld (het verhogen van de snelheid elke 30s) en het scherm bijwerkt. De variabele frameDelay bevat de periode in ms tussen frames en na het bijwerken van het scherm, het wacht op die periode verlopen voordat u opnieuw begint.
VOID invaders ():
Vergelijkbaar met het spel Pong, dit cycli ronde het lezen van de positie van de vleermuis (speler), controleren van de status van de schoten en bommen, leven, controleren of het spel versnellen moet, verplaatsen de aliens en bijwerken van het scherm bijwerken. De aliens één pixel over tegelijk verplaatsen, maar ze animatie alleen elke 4 pixels zodat ze gewoon niet vervagen en beter lijken op het originele spel. Zoals beschreven in de laatste stap, worden de aliens aangehouden en weergegeven als tekens, net als de score en het vrije leven. De vleermuis en de UFO worden getekend met lijnen. De UFO past in de ruimte van 3 pixels boven de bovenste rij van vreemdelingen, die we opgedaan door het definiëren van een heel klein lettertype voor de score.
VOID checkBatt():
Dit controleert de accuspanning en vraagt de gebruiker uitschakelen en laden als de spanning zakt tot onder 3.6V.