Innehållsförteckning:

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

Video: Arduino Space Race Game Version _1: 5 steg

Video: Arduino Space Race Game Version _1: 5 steg
Video: How to make a STEEL MARBLE TRACK with basic tools! step by step guide 2024, Juli
Anonim
Image
Image

Hej vänner. Idag visar jag dig hur du kan göra ett rymdloppsspel med LCD5110 -skärm och joystic. Låt oss se steg …

Steg 1: BEHOV

SCHEMA
SCHEMA

Här är en lista över delar som jag använde för att göra detta projekt:

  • Arduino UNO
  • Joystick -modul
  • Jumper Wires (man till man och man till kvinna)
  • Bakbord

Steg 2: SCHEMA

VCC -> Arduino 5V

BL -> Arduino stift 3

GND -> Arduino GND

CLK (SCLK) -> Arduino pin 8

DIN (MOSI) -> Arduino stift 9

DC -> Arduino stift 10

CE eller CS -> Arduino pin 12

RST (ÅTERSTÄLL) -> Arduino -stift 11

Steg 3: KOD

KODA
KODA

Koden har förklaringar av kodfunktioner. Du kommer lätt att förstå det. Om du har problem kan du kontakta mig.

#omfatta

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

int BL = 3;

extern uint8_t SmallFont ; // beskriv typsnittet extern uint8_t MediumNumbers ; extern uint8_t arac ; // beskriv vår form extern uint8_t dusman_araci ; // beskriv fiendeform const int xpin = A0; // joystick x pin char pozisyon = 2; // beskriv platsen, vår form start plats 2 boolsk kontroll = true; booleska dusmanOldu = true; int skor = 0; int hiz = 0; int dusmanKonumu1; // beskriv fiende1 x plats int dusmanKonumu2; // beskriv fiende2 x plats int dusmaninYdeKonumu; // beskriv fiender och plats

void dusmanAraci (int yer, int asama) {// ange platser för fiendens former

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

void oyunBitti () {// om vi misslyckas, är spelet över

medan (1) {delay (100); // vänta 1 milisekund lcd.clrScr (); // rensa skärmen lcd.setFont (SmallFont); // set font lcd.print ("GAME OVER", CENTER, 20); // skriv ut lcd.update (); // uppdatera skärmen}}

void setup () {pinMode (BL, OUTPUT); // ställ tillbaka ljus Utgång lcd. InitLCD (); // initilaze lcd screen lcd.setContrast (55); // ställ in kontrast (mellan 0 och 127) Serial.begin (9600); // starta seriell kommunikation}

void loop () {

analogWrite (BL, 200);

// ställ in spelskärmen lcd.drawRect (0, 0, 47, 47); // vi ritar rektangel lcd.setFont (SmallFont); // set font lcd.print ("skor", 53, 0); // printf poäng lcd.setFont (MediumNumbers); // set font lcd.printNumI (skor, 59, 7); // få poäng lcd.setFont (SmallFont); lcd.print ("hiz", 56, 25); // utskriftshastighet lcd.setFont (MediumNumbers); lcd.printNumI (hiz, 59, 32); // få hastighet lcd.update (); //uppdatering

// ställ in joyistick -platsen 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 och kontrollen är sann pozisyon ++; // öka platsen det betyder flytta form till höger kontroll = false; } annat om (x> 300 && x <600) {kontrol = true; } Serial.println (x); // för att lära sig x -tillstånd // ställ in vår form -plats lcd.clrScr (); // rensa skärmen om (pozisyon == 1) {// if location = 1; lcd.drawBitmap (2, 37, arac, 12, 8);} // rita vårt skepp om (pozisyon == 2) {lcd.drawBitmap (18, 37, arac, 12, 8);}

om (pozisyon == 3) {

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

if (dusmanOldu) {// om fiendens form är död, kontrollera om de är döda

dusmanKonumu1 = pozisyon; // rita första fiendens form dusmanKonumu2 = random (0, 4); // rita en annan fiendens form någonstans dusmaninYdeKonumu = 0; // ta med fienden från toppen dusmanOldu = false;} // fienden återskapas så att de inte är döda dusmanAraci (dusmanKonumu1, dusmaninYdeKonumu); dusmaninYdeKonumu ++; // rita första fiendens form och få den uppifrån och ner dusmanAraci (dusmanKonumu2, dusmaninYdeKonumu); dusmaninYdeKonumu ++; // rita andra fiendens form och få den uppifrån och ner om (dusmaninYdeKonumu> 22 && ((dusmanKonumu1 == pozisyon) || (dusmanKonumu2 == pozisyon))) {// om vår form berör fiendens former oyunBitti ();} // spelet är över om (dusmaninYdeKonumu> 40) {// om vår form flyr från fiender dusmanOldu = true; // döda fiendens former skor ++;} // öka poängen en efter en // öka hastigheten enligt poängen om (skor> = 0 && skor10 && skor20 && skor30 && skor <= 40) {hiz = 3; fördröjning (40); }}

Steg 4: KODBITMAPP

Dessutom måste du inkludera bitmappsgrafik för former. Det måste vara en.c -fil och samma namn med kodenamn. Den måste också finnas i samma fil.

// ------------------------------------------------ ------------------------------ // Fil genererad av LCD Assistant // https://en.radzio.dxp.pl /bitmap_converter/// --------------------------------------------- --------------------------------- #include // include för programfunktion

const osignerad char arac PROGMEM = {// vår form bitmapp

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

const osignerad char dusman_araci PROGMEM = {// fiendens skepps bitmapp

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

Steg 5: TACK FÖR VISNINGEN

TACK för att du tittade
TACK för att du tittade

Innan jag började dela mina projekt, kodade jag i turkiska ord så jag kunde inte chansa alla ord till engelska.

Oyun = Spel

Arac = form

Dusman = Fiend

kontroll = kontroll

Konum, Yer = Plats

Oyun Bitti = Game Over

Skor = Poäng

Hiz = Hastighet

Rekommenderad: