Innholdsfortegnelse:

Arduino Space Race Game Version _1: 5 Steps
Arduino Space Race Game Version _1: 5 Steps

Video: Arduino Space Race Game Version _1: 5 Steps

Video: Arduino Space Race Game Version _1: 5 Steps
Video: Arduino Game - Arduino space racing game 2024, Juli
Anonim
Image
Image

Hei venner. I dag viser jeg deg hvordan du kan lage et Space Race Game med LCD5110 -skjerm og joystic. La oss se trinn …

Trinn 1: BEHOV

SCHEMA
SCHEMA

Her er en liste over deler jeg brukte til å lage dette prosjektet:

  • Arduino UNO
  • Joystick -modul
  • Jumper Wires (mann til mann og mann til kvinne)
  • Brødbrett

Trinn 2: SCHEMA

VCC -> Arduino 5V

BL -> Arduino pin 3

GND -> Arduino GND

CLK (SCLK) -> Arduino pin 8

DIN (MOSI) -> Arduino pin 9

DC -> Arduino pin 10

CE eller CS -> Arduino pin 12

RST (RESET) -> Arduino pin 11

Trinn 3: KODE

KODE
KODE

Koden har forklaringer på kodefunksjoner. Du vil lett forstå det. Hvis du har et problem, kan du kontakte meg.

#inkludere

LCD5110 lcd (8, 9, 10, 11, 12); // (clk, din, dc, rst, ce)

int BL = 3;

ekstern uint8_t SmallFont ; // beskriv skrifttypene extern uint8_t MediumNumbers ; ekstern uint8_t arac ; // beskrive vår form eksternt uint8_t dusman_araci ; // beskriv fiendens form const int xpin = A0; // joystick x pin char pozisyon = 2; // beskriv plasseringen, vår form startplassering 2 boolsk kontroll = true; boolsk dusmanOldu = true; int skor = 0; int hiz = 0; int dusmanKonumu1; // beskrive fiende1 x plassering int dusmanKonumu2; // beskrive fiende2 x plassering int dusmaninYdeKonumu; // beskriv fiender og plassering

void dusmanAraci (int yer, int asama) {// angi steder for fiendens former

if (yer == 1) {// if location = 1; lcd.drawBitmap (2, asama, dusman_araci, 12, 8); // tegne fiendens form} if (yer == 2) {lcd.drawBitmap (18, asama, dusman_araci, 12, 8); } hvis (yer == 3) {lcd.drawBitmap (34, asama, dusman_araci, 12, 8); }}

void oyunBitti () {// hvis vi mislykkes, er spillet over

mens (1) {forsinkelse (100); // vent 1 milisekund lcd.clrScr (); // tøm skjermen lcd.setFont (SmallFont); // sett skrift lcd.print ("SPILL OVER", SENTRUM, 20); // Skriv ut lcd.update (); // oppdater skjermen}}

ugyldig oppsett () {pinMode (BL, OUTPUT); // sett tilbake lys Utgang lcd. InitLCD (); // start lcd -skjermen lcd.setContrast (55); // sett kontrast (mengde 0 til 127) Serial.begin (9600); // start seriell kommunikasjon}

void loop () {

analogWrite (BL, 200);

// sett spillskjerm lcd.drawRect (0, 0, 47, 47); // vi tegner rektangel lcd.setFont (SmallFont); // sett font lcd.print ("skor", 53, 0); // printf score lcd.setFont (MediumNumbers); // sett font lcd.printNumI (skor, 59, 7); // få score lcd.setFont (SmallFont); lcd.print ("hiz", 56, 25); // utskriftshastighet lcd.setFont (MediumNumbers); lcd.printNumI (hiz, 59, 32); // få hastighet lcd.update (); //Oppdater

// angi joyistick -plasseringen int x = analogRead (xpin); if (x <300 && pozisyon! = 1 && kontrol == true) {// if location! = 1, x state600 && pozisyon! = 3 && kontrol == true) {// if location! = 3, x state> 600 og kontroll er sant pozisyon ++; // øke plasseringen det betyr flytte form til høyre kontroll = false; } annet hvis (x> 300 && x <600) {kontrol = true; } Serial.println (x); // for å lære x -tilstand // angi plasseringen vår form lcd.clrScr (); // tøm skjermen hvis (pozisyon == 1) {// if location = 1; lcd.drawBitmap (2, 37, arac, 12, 8);} // tegne vårt skip hvis (pozisyon == 2) {lcd.drawBitmap (18, 37, arac, 12, 8);}

hvis (pozisyon == 3) {

lcd.drawBitmap (34, 37, arac, 12, 8);}

hvis (dusmanOldu) {// hvis fiendens form er død, sjekk om de er døde

dusmanKonumu1 = pozisyon; // tegne første fiendeform dusmanKonumu2 = tilfeldig (0, 4); // tegne en annen fiendeform et sted dusmaninYdeKonumu = 0; // ta med fienden fra toppen dusmanOldu = false;} // fienden blir gjenskapt slik at de ikke er døde dusmanAraci (dusmanKonumu1, dusmaninYdeKonumu); dusmaninYdeKonumu ++; // tegne første fiendtlige form og få den fra topp til bunn dusmanAraci (dusmanKonumu2, dusmaninYdeKonumu); dusmaninYdeKonumu ++; // tegne den andre fiendens form og få den fra topp til bunn hvis (dusmaninYdeKonumu> 22 && ((dusmanKonumu1 == pozisyon) || (dusmanKonumu2 == pozisyon))) {// hvis vår form berører fiendens former oyunBitti ();} // spillet er over hvis (dusmaninYdeKonumu> 40) {// hvis vår form rømmer fra fiender dusmanOldu = true; // drep fiendens former skor ++;} // øk poengsummen en etter en // øk hastigheten i henhold til poengsummen hvis (skor> = 0 && skor10 && skor20 && skor30 && skor <= 40) {hiz = 3; forsinkelse (40); }}

Trinn 4: KODE BITMAP

Videre må du inkludere bitmap -grafikk for former. Det må være en.c -fil og samme navn med kodenavn. Den må også være i samme fil.

// ------------------------------------------------ ------------------------------ // Fil generert av LCD Assistant // https://en.radzio.dxp.pl /bitmap_converter/// --------------------------------------------- --------------------------------- #include // include for progmem function

const usignert char arac PROGMEM = {// vårt form -bitmap

0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};

const unsigned char dusman_araci PROGMEM = {// fiendeskipets bitmap

0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};

Trinn 5: TAKK FOR VISNINGEN

TAKK FOR VISNINGEN
TAKK FOR VISNINGEN

Før jeg begynte å dele prosjektene mine, ı kodet jeg med tyrkiske ord, så jeg kunne ikke tilfredsstille alle ord til engelsk. Her er ordoversettelsen som jeg bruker dette prosjektet, Oyun = Spill

Arac = Form

Dusman = Fiende

kontroll = kontroll

Konum, Yer = Beliggenhet

Oyun Bitti = Game Over

Skor = Poengsum

Hiz = Hastighet

Anbefalt: