Obsah:

Arduino Space Race Verze hry _1: 5 kroků
Arduino Space Race Verze hry _1: 5 kroků

Video: Arduino Space Race Verze hry _1: 5 kroků

Video: Arduino Space Race Verze hry _1: 5 kroků
Video: TOP 10 Počítačové lifehacky, které vám usnadní život 2024, Listopad
Anonim
Image
Image

Čau přátelé. Dnes vám ukážu, jak lze vytvořit vesmírnou závodní hru pomocí obrazovky LCD5110 a radosti. Podívejme se na kroky…

Krok 1: POTŘEBY

SCHÉMA
SCHÉMA

Zde je seznam dílů, které jsem použil k vytvoření tohoto projektu:

  • Arduino UNO
  • Modul joysticku
  • Propojovací dráty (muž k muži a muž k ženě)
  • Prkénko

Krok 2: SCHÉMA

VCC -> Arduino 5V

BL -> Pin Arduino 3

GND -> Arduino GND

CLK (SCLK) -> Arduino pin 8

DIN (MOSI) -> Arduino pin 9

DC -> Arduino pin 10

CE nebo CS -> Arduino pin 12

RST (RESET) -> Arduino pin 11

Krok 3: KÓD

KÓD
KÓD

Kód obsahuje vysvětlení funkcí kódu. Snadno to pochopíte. Pokud máte problém, můžete mě kontaktovat.

#zahrnout

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

int BL = 3;

extern uint8_t SmallFont ; // popište písma extern uint8_t MediumNumbers ; extern uint8_t arac ; // popiš náš tvar extern uint8_t dusman_araci ; // popsat tvar nepřítele const int xpin = A0; // joystick x pin char pozisyon = 2; // popište polohu, naše počáteční umístění tvaru 2 boolean kontrol = true; boolean dusmanOldu = true; int skor = 0; int hiz = 0; int dusmanKonumu1; // popiš nepřátel1 x umístění int dusmanKonumu2; // popište nepřátelské2 x umístění int dusmaninYdeKonumu; // popište nepřátele y umístění

void dusmanAraci (int yer, int asama) {// nastavení umístění nepřátelských tvarů

if (yer == 1) {// if location = 1; lcd.drawBitmap (2, asama, dusman_araci, 12, 8); // nakreslete tvar nepřítele} if (yer == 2) {lcd.drawBitmap (18, asama, dusman_araci, 12, 8); } if (yer == 3) {lcd.drawBitmap (34, asama, dusman_araci, 12, 8); }}

void oyunBitti () {// pokud selžeme, hra skončí

while (1) {delay (100); // počkejte 1 milisekundu lcd.clrScr (); // vymazání obrazovky lcd.setFont (SmallFont); // set font lcd.print ("GAME OVER", CENTER, 20); // tisk lcd.update (); // aktualizovat obrazovku}}

neplatné nastavení () {pinMode (BL, VÝSTUP); // nastavení protisvětla Výstup lcd. InitLCD (); // inicializace obrazovky LCD lcd.setContrast (55); // nastavení kontrastu (kolem 0 až 127) Serial.begin (9600); // zahájení sériové komunikace}

prázdná smyčka () {

analogWrite (BL, 200);

// nastavení obrazovky hry lcd.drawRect (0, 0, 47, 47); // nakreslíme obdélník lcd.setFont (SmallFont); // set font lcd.print ("skor", 53, 0); // skóre printf lcd.setFont (MediumNumbers); // sada písem lcd.printNumI (skor, 59, 7); // získat skóre lcd.setFont (SmallFont); lcd.print ("hiz", 56, 25); // rychlost tisku lcd.setFont (MediumNumbers); lcd.printNumI (hiz, 59, 32); // získejte rychlost lcd.update (); //Aktualizace

// nastavení umístění joysticku 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 a ovládání je pravda pozisyon ++; // zvětšení umístění to znamená přesunout tvar doprava kontrol = false; } else if (x> 300 && x <600) {kontrol = true; } Serial.println (x); // pro učení stavu x // nastavte umístění našeho tvaru lcd.clrScr (); // vymazání obrazovky if (pozisyon == 1) {// if location = 1; lcd.drawBitmap (2, 37, arac, 12, 8);} // nakreslete naši loď if (pozisyon == 2) {lcd.drawBitmap (18, 37, arac, 12, 8);}

if (pozisyon == 3) {

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

if (dusmanOldu) {// pokud je tvar nepřítele mrtvý, zkontrolujte, zda je mrtvý

dusmanKonumu1 = pozisyon; // nakreslete první tvar nepřítele dusmanKonumu2 = random (0, 4); // nakreslete někam další tvar nepřítele dusmaninYdeKonumu = 0; // přivést nepřítele shora dusmanOldu = false;} // nepřítel se znovu vytvoří, aby nebyli mrtví dusmanAraci (dusmanKonumu1, dusmaninYdeKonumu); dusmaninYdeKonumu ++; // nakreslete první tvar nepřítele a získejte jej odshora dolů dusmanAraci (dusmanKonumu2, dusmaninYdeKonumu); dusmaninYdeKonumu ++; // nakreslete druhý tvar nepřítele a získejte ho odshora dolů, pokud (dusmaninYdeKonumu> 22 && ((dusmanKonumu1 == pozisyon) || (dusmanKonumu2 == pozisyon))) {// pokud se náš tvar dotkne nepřátelských tvarů oyunBitti ();} // hra končí, pokud (dusmaninYdeKonumu> 40) {// pokud náš tvar unikne před nepřáteli dusmanOldu = true; // zabíjení nepřátelských tvarů skor ++;} // zvyšování skóre jeden po druhém // zvyšování rychlosti podle skóre if (skor> = 0 && skor10 && skor20 && skor30 && skor <= 40) {hiz = 3; zpoždění (40); }}

Krok 4: KÓD BITMAPY

Kromě toho musíte pro tvary zahrnout bitmapovou grafiku. Musí to být soubor.c a stejný název s kódovým názvem. Také musí být ve stejném souboru.

// ------------------------------------------------ ------------------------------ // Soubor generovaný pomocníkem LCD // https://en.radzio.dxp.pl /bitmap_converter/// --------------------------------------------- --------------------------------- #include // include pro funkci progmem

const unsigned char arac PROGMEM = {// naše bitmapa tvaru

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

const unsigned char dusman_araci PROGMEM = {// bitmapa nepřátelské lodi

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

Krok 5: DÍKY ZA ZOBRAZENÍ

DĚKUJI ZA ZOBRAZENÍ
DĚKUJI ZA ZOBRAZENÍ

Než jsem začal sdílet své projekty, zakódoval jsem turecká slova, takže jsem nemohl šanci každé slovo anglicky. Zde je překlad slov, která tento projekt používám, Oyun = Hra

Arac = Tvar

Dusman = Nepřítel

kontroler = kontrola

Konum, Yer = Poloha

Oyun Bitti = Konec hry

Skor = skóre

Hiz = rychlost

Doporučuje: