Stap 7: Welkom en einde van het spel plons zeef
Wanneer u dit spel voor het eerst start, wordt u verwelkomd met tekst zegt u moet druk op de knop om te beginnen en net na dat, wordt u gegeven de optie om te selecteren uw factie (lichte of donkere kant). Dit ziet er niet alleen goed, maar kunt ook een factor van willekeur in het spel te krijgen. Voordat ik welkom scherm uitgevoerd, zou één LinkIt altijd produceren de exacte hetzelfde terrein, waardoor dit spel is saai. Nu die gebruiker wanneer het spel begint beslist, begintijd is anders en willekeurige waarden eigenlijk verworden tot willekeurige. Dat is gevolg van willekeurige van zaad wordt telkens een beetje anders. Het kiezen van uw kant zal worden besproken een beetje meer in de volgende stap.
Scherm van de plons van het eindspel echter is er alleen voor de show. Wanneer u een obstakel raakt, 3 frameanimatie explosie wordt tweemaal weergegeven en scherm wordt afgeveegd in zwart. "GAME OVER!" wordt weergegeven, het trilt een beetje en score verschijnt in de onderste rij.
Explosie is ultra eenvoudig. U stelt cursor op ruimteschip de positie, eerste frame weergeven, wachten een beetje, tweede scherm, wachten wat meer en weergeven van het laatste frame van de animatie van de explosie. Herhaal keer en start afvegend het allemaal in het zwart.
Zwarte cel is laatste teken die LCD in het ROM, aldus opvraagbaar door lcd.write(0b11111111) heeft. Parameter van de functie is grootste mogelijke 8-bits getal. Dat gezegd hebbende, voor lus doorlopen van 1ste rij, telkens één zwarte cel dan een beetje te wachten alvorens over te gaan renderen. Tweede rij gebeurt hetzelfde net van rechts naar links. Dit levert een mooie wipe-animatie.
Na enige tijd, wordt "GAME OVER" weergegeven in de 1ste rij. Flikkering animatie gebeurt door 1ste rij weer met zwarte cellen vullen en herschrijven "GAME OVER" kort na.
Score is het makkelijkst. Cursor is ingesteld op de tweede positie in de tweede rij en de functie afdrukken "Score: _ _ _ _" met genoeg ruimten om te bereiken alles behalve laatste teken in die rij. Cursor wordt vervolgens ingesteld na de eerste spatie en score wordt weergegeven.
Dit is waarschijnlijk erg verwarrend aan u dus laten we een kijkje nemen op de code als het is veel, veel gemakkelijker te begrijpen dat wat ik net geschreven.
//endgame screenboom://explosion lcd.setCursor(x,y); lcd.write(4); delay(200); lcd.setCursor(x,y); lcd.write(5); delay(200); lcd.setCursor(x,y); lcd.write(6); delay(200); lcd.setCursor(x,y); lcd.write(4); delay(200); lcd.setCursor(x,y); lcd.write(5); delay(200); lcd.setCursor(x,y); lcd.write(6); delay(200); //black wipefor(int i = 0; i<16; i++){ lcd.setCursor(i,0); lcd.write(0b11111111); delay(100); } for(int i = 15; i>-1; i--){ lcd.setCursor(i,1); lcd.write(0b11111111); delay(100); } //game over lcd.setCursor(3,0); lcd.print("GAME OVER!"); delay(1000); //flicker lcd.setCursor(3,0); for(int i = 3;i<12;i++){ lcd.write(0b11111111); } delay(100); lcd.setCursor(3,0); lcd.print("GAME OVER!"); delay(1000); //score lcd.setCursor(1,1); lcd.print("Score: "); lcd.setCursor(7,1); lcd.print(score); //wait for buttonwhile(!digitalRead(buttonPin)){;} while(digitalRead(buttonPin)){;} //reset game a = 0b0000000000000000; b = 0b0000000000000000; score = 0; stepTime = 700; goto charSelect;
Eindspel scherm duurt totdat de gebruiker klikt op de knop opnieuw. Dan stats worden gereset, niveau is uitgeschakeld en wordt u gegeven de optie om te selecteren uw factie nogmaals.