Star Wars tema retro arkadspel (7 / 9 steg)
Steg 7: Välkommen och slutet av spelet startbild
När du först startar detta spel, är du välkommen med text säger du måste trycka på knappen för att starta och bara efter det, ges du möjlighet att välja din fraktion (ljus eller mörk sida). Detta ser inte bara bra, det kan också en faktor av slumpmässighet att komma in i spelet. Innan jag genomfört välkomstskärmen, skulle LinkIt en alltid generera exakt samma terräng, vilket gör detta spelet tråkigt. Nu användaren beslutar när spelet startar, starttid är olika och därmed slumpmässiga värden faktiskt bli slumpmässigt. Det är på grund av slumpmässiga frö att vara lite annorlunda varje gång. Att välja din sida kommer att diskuteras mer i nästa steg.
Slutspelet plaska skärm men är det bara för show. När du träffar ett hinder, 3 bildruteanimering explosion visas två gånger och skärmen är torkas i svart. "GAME OVER!" visas, det flimrar lite och poäng visar upp i nedre raden.
Explosion är ultra enkel. Du ställa markören på Rymdskepps position, Visa första bildruta, vänta lite, Visa andra skärm, vänta lite mer och visar den sista bildrutan i explosion animation. Upprepa en gång och börja torka allt i svart.
Svart cell är sista tecknet LCD har i sin ROM, således callable av lcd.write(0b11111111). Parametern för funktionen är största möjliga 8 bitars tal. Som sagt, för loopen itererar igenom 1: a raden, varje gång gör en svart cell än att vänta på lite innan du går vidare. Andra raden görs samma bara från höger till vänster. Detta ger en vacker torka animation.
Efter en tid visas "GAME OVER" i 1: a raden. Flimmer animation görs genom att fylla 1 rad med svart celler igen och skriva om "GAME OVER" snart efter.
Poäng är de enklaste. Markören ligger på andra plats i andra raden och funktionen utskrifter "poäng: _ _ _ _" med tillräckligt utrymmen att nå alla utom sista tecknet i den raden. Markören är då inställd efter första utrymme och poäng visas.
Detta är sannolikt mycket förvirrande till dig så låt oss ta en titt på koden som det är mycket, mycket lättare att förstå att vad jag skrev.
Endgame skärmenboom://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);
svart wipefor (int i = 0; i < 16; i ++) {
lcd.setCursor(i,0);
LCD.write(0b11111111);
Delay(100);
}
för (int jag = 15; jag > -1; i--) {
lcd.setCursor(i,1);
LCD.write(0b11111111);
Delay(100);
}
Spelet är slut
lcd.setCursor(3,0);
LCD.Print ("GAME OVER!");
Delay(1000);
flimmer
lcd.setCursor(3,0);
för (int jag = 3; jag < 12, i ++) {
LCD.write(0b11111111);
}
Delay(100);
lcd.setCursor(3,0);
LCD.Print ("GAME OVER!");
Delay(1000);
poäng
lcd.setCursor(1,1);
LCD.Print ("poäng:");
lcd.setCursor(7,1);
LCD.Print(score);
vänta på buttonwhile(!digitalRead(buttonPin)) {;}
While(digitalRead(buttonPin)) {;}
återställa spel
en = 0b0000000000000000;
b = 0b0000000000000000;
poäng = 0;
stepTime = 700;
gå till charSelect;
End game skärm varar tills användaren klickar på knappen igen. Sedan stats återställs, nivå är avmarkerad och du ges möjlighet att välja din fraktion än en gång.