Obsah:

Arduino Space Race Verzia hry _1: 5 krokov
Arduino Space Race Verzia hry _1: 5 krokov

Video: Arduino Space Race Verzia hry _1: 5 krokov

Video: Arduino Space Race Verzia hry _1: 5 krokov
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Júl
Anonim
Image
Image

Čaute priatelia. Dnes vám ukážem, ako sa dá vytvoriť vesmírna závodná hra s obrazovkou LCD5110 a radosťou. Pozrime sa na kroky…

Krok 1: POTREBUJE

SCHÉMA
SCHÉMA

Tu je zoznam dielov, ktoré som použil na výrobu tohto projektu:

  • Arduino UNO
  • Modul joysticku
  • Prepojovacie vodiče (muž - muž a muž - žena)
  • Breadboard

Krok 2: SCHÉMA

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 alebo CS -> Arduino pin 12

RST (RESET) -> Arduino pin 11

Krok 3: KÓD

KÓD
KÓD

Kód obsahuje vysvetlenia funkcií kódu. Ľahko to pochopíte. Ak máte problém, môžete ma kontaktovať.

#zahrnúť

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

int BL = 3;

extern uint8_t SmallFont ; // opis fontov extern uint8_t MediumNumbers ; extern uint8_t arac ; // opíš náš tvar extern uint8_t dusman_araci ; // popísať tvar nepriateľa const int xpin = A0; // joystick x pin char pozisyon = 2; // popíšte polohu, naše tvarové začiatočné umiestnenie 2 boolean kontrol = true; boolean dusmanOldu = pravda; int skor = 0; int hiz = 0; int dusmanKonumu1; // popis nepriatela1 x poloha int dusmanKonumu2; // popis nepriatela2 x poloha int dusmaninYdeKonumu; // popíšte nepriateľov y umiestnenie

void dusmanAraci (int yer, int asama) {// nastavenie miest pre nepriateľské tvary

if (yer == 1) {// if location = 1; lcd.drawBitmap (2, asama, dusman_araci, 12, 8); // nakreslite tvar nepriateľa} if (yer == 2) {lcd.drawBitmap (18, asama, dusman_araci, 12, 8); } if (yer == 3) {lcd.drawBitmap (34, asama, dusman_araci, 12, 8); }}

void oyunBitti () {// ak zlyháme, hra sa skončí

while (1) {delay (100); // počkajte 1 milisekundu lcd.clrScr (); // vymazanie obrazovky lcd.setFont (SmallFont); // set font lcd.print ("GAME OVER", CENTER, 20); // print lcd.update (); // aktualizácia obrazovky}}

void setup () {pinMode (BL, OUTPUT); // nastavenie podsvietenia Výstup lcd. InitLCD (); // inicializácia obrazovky LCD lcd.setContrast (55); // nastavenie kontrastu (približne 0 až 127) Serial.begin (9600); // spustenie sériovej komunikácie}

prázdna slučka () {

analogWrite (BL, 200);

// nastavenie obrazovky hry lcd.drawRect (0, 0, 47, 47); // nakreslíme obdĺžnik lcd.setFont (SmallFont); // set font lcd.print ("skor", 53, 0); // skóre printf lcd.setFont (MediumNumbers); // set font lcd.printNumI (skor, 59, 7); // získať skóre lcd.setFont (SmallFont); lcd.print ("hiz", 56, 25); // rýchlosť tlače lcd.setFont (MediumNumbers); lcd.printNumI (hiz, 59, 32); // získajte rýchlosť lcd.update (); // aktualizácia

// nastavenie umiestnenia 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ádanie je pravda pozisyon ++; // zväčšenie polohy, to znamená posunutie tvaru doprava kontrol = false; } else if (x> 300 && x <600) {kontrol = true; } Serial.println (x); // na učenie stavu x // nastavte umiestnenie nášho tvaru lcd.clrScr (); // vymazanie obrazovky if (pozisyon == 1) {// if location = 1; lcd.drawBitmap (2, 37, arac, 12, 8);} // nakreslite našu loď, ak (pozisyon == 2) {lcd.drawBitmap (18, 37, arac, 12, 8);}

ak (pozisyon == 3) {

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

if (dusmanOldu) {// ak je tvar nepriatela mrtvy, skontroluj ci su mrtvy

dusmanKonumu1 = pozisyon; // nakresli tvar prveho nepriatela dusmanKonumu2 = random (0, 4); // nakreslite niekde iný tvar nepriateľa dusmaninYdeKonumu = 0; // priveďte nepriateľa zhora dusmanOldu = false;} // nepriateľ sa znova vytvorí, aby neboli mŕtvi dusmanAraci (dusmanKonumu1, dusmaninYdeKonumu); dusmaninYdeKonumu ++; // nakreslite prvý tvar nepriateľa a získajte ho zhora nadol dusmanAraci (dusmanKonumu2, dusmaninYdeKonumu); dusmaninYdeKonumu ++; // nakreslite druhý tvar nepriateľa a získajte ho zhora nadol, ak (dusmaninYdeKonumu> 22 && ((dusmanKonumu1 == pozisyon) || (dusmanKonumu2 == pozisyon))) {// ak sa náš tvar dotýka nepriateľských tvarov oyunBitti ();} // hra sa skončí, ak (dusmaninYdeKonumu> 40) {// ak náš tvar unikne pred nepriateľmi dusmanOldu = true; // zabíjajte tvary nepriateľa skor ++;} // zvyšujte skóre jeden po druhom // zvyšujte rýchlosť podľa skóre, ak (skor> = 0 && skor10 && skor20 && skor30 && skor <= 40) {hiz = 3; oneskorenie (40); }}

Krok 4: KÓD BITMAPY

Ďalej musíte pre tvary zahrnúť bitmapovú grafiku. Musí to byť súbor.c a rovnaké meno s kódovým názvom. Tiež musí byť v tom istom súbore.

// ------------------------------------------------ ------------------------------ // Súbor vygenerovaný programom LCD Assistant // https://en.radzio.dxp.pl /bitmap_converter/// --------------------------------------------- --------------------------------- #include // include pre funkciu progmem

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

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

const unsigned char dusman_araci PROGMEM = {// bitmapa nepriateľskej lode

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

Krok 5: VĎAKA ZA ZOBRAZENIE

ĎAKUJEM ZA ZOBRAZENIE
ĎAKUJEM ZA ZOBRAZENIE

Predtým, ako som začal zdieľať svoje projekty, kódoval som turecké slová, takže som nemohol náhodne preložiť každé slovo do angličtiny. Tu je preklad slov, ktoré tento projekt používam, Oyun = hra

Arac = Tvar

Dusman = Nepriateľ

kontrolér = kontrola

Konum, Yer = Poloha

Oyun Bitti = Koniec hry

Skor = Skóre

Hiz = rýchlosť

Odporúča: