Kazalo:

Različica igre Arduino Space Race _1: 5 korakov
Različica igre Arduino Space Race _1: 5 korakov

Video: Različica igre Arduino Space Race _1: 5 korakov

Video: Različica igre Arduino Space Race _1: 5 korakov
Video: World's Largest FREE WILL Debate w/ Top Physicists & Philosophers 2024, Julij
Anonim
Image
Image

Hej prijatelji. Danes vam bom pokazal, kako lahko naredite Space Race Game z zaslonom LCD5110 in veseljem. Poglejmo korake…

1. korak: POTREBE

SHEMA
SHEMA

Tu je seznam delov, ki sem jih uporabil za izdelavo tega projekta:

  • Arduino UNO
  • Modul igralne palice
  • Mostične žice (moški do moški in moški do ženske)
  • Ogledna plošča

2. korak: SEMA

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

RST (RESET) -> Arduino pin 11

3. korak: KODIRANJE

KODA
KODA

Koda ima razlage kodnih funkcij. To boste zlahka razumeli. Če imate težave, me lahko kontaktirate.

#vključi

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

int BL = 3;

extern uint8_t SmallFont ; // opišemo pisave extern uint8_t MediumNumbers ; zunanji uint8_t arac ; // opišemo našo obliko extern uint8_t dusman_araci ; // opisati obliko sovražnika const int xpin = A0; // krmilna palica x pin char pozisyon = 2; // opišemo lokacijo, našo obliko začetne lokacije 2 boolean kontrol = true; logični dusmanOldu = res; int skor = 0; int hiz = 0; int dusmanKonumu1; // opiši sovražnika1 x lokacijo int dusmanKonumu2; // opiši sovražnika2 x lokacijo int dusmaninYdeKonumu; // opišite sovražnike in lokacijo

void dusmanAraci (int yer, int asama) {// nastavite lokacije za oblike sovražnika

if (yer == 1) {// if location = 1; lcd.drawBitmap (2, asama, dusman_araci, 12, 8); // nariši sovražnikovo obliko} if (yer == 2) {lcd.drawBitmap (18, asama, dusman_araci, 12, 8); } if (yer == 3) {lcd.drawBitmap (34, asama, dusman_araci, 12, 8); }}

void oyunBitti () {// če nam ne uspe, je igre konec

medtem ko (1) {zamuda (100); // počakajte 1 milisekundo lcd.clrScr (); // počistite zaslon lcd.setFont (SmallFont); // nastavi pisavo lcd.print ("GAME OVER", CENTER, 20); // natisni lcd.update (); // posodobi zaslon}}

void setup () {pinMode (BL, OUTPUT); // nastavitev osvetlitve ozadja Izhod lcd. InitLCD (); // inicializira lcd zaslon lcd.setContrast (55); // nastavimo kontrast (od 0 do 127) Serial.begin (9600); // zaženi serijsko komunikacijo}

void loop () {

analogWrite (BL, 200);

// nastavite zaslon igre lcd.drawRect (0, 0, 47, 47); // narišemo pravokotnik lcd.setFont (SmallFont); // nastavi pisavo lcd.print ("skor", 53, 0); // printf score lcd.setFont (MediumNumbers); // nastavi pisavo lcd.printNumI (skor, 59, 7); // dobimo rezultat lcd.setFont (SmallFont); lcd.print ("hiz", 56, 25); // hitrost tiskanja lcd.setFont (MediumNumbers); lcd.printNumI (hiz, 59, 32); // dobimo hitrost lcd.update (); //nadgradnja

// nastavimo lokacijo krmilne palice int x = analogRead (xpin); if (x <300 && pozisyon! = 1 && kontrol == true) {// če je lokacija! = 1, x stanje600 && pozisyon! = 3 && kontrol == true) {// če je lokacija! = 3, x stanje> 600 in nadzor je pravi pozisyon ++; // povečanje lokacije pomeni premikanje oblike v desno kontrol = false; } else if (x> 300 && x <600) {kontrol = true; } Serial.println (x); // za učenje x stanje // nastavimo lokacijo naše oblike lcd.clrScr (); // počisti zaslon if (pozisyon == 1) {// če je lokacija = 1; lcd.drawBitmap (2, 37, arac, 12, 8);} // narišimo našo ladjo, če (pozisyon == 2) {lcd.drawBitmap (18, 37, arac, 12, 8);}

if (pozisyon == 3) {

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

if (dusmanOldu) {// če je oblika sovražnika mrtva, preverite, ali so mrtvi

dusmanKonumu1 = pozisyon; // narišemo prvo obliko sovražnika dusmanKonumu2 = naključno (0, 4); // nekje narišemo drugo obliko sovražnika dusmaninYdeKonumu = 0; // pripeljemo sovražnika z vrha dusmanOldu = false;} // sovražnik se ustvari tako, da ni mrtev dusmanAraci (dusmanKonumu1, dusmaninYdeKonumu); dusmaninYdeKonumu ++; // narišemo prvo sovražnikovo obliko in jo dobimo od zgoraj navzdol dusmanAraci (dusmanKonumu2, dusmaninYdeKonumu); dusmaninYdeKonumu ++; // narišemo drugo obliko sovražnika in jo dobimo od zgoraj navzdol if (dusmaninYdeKonumu> 22 && ((dusmanKonumu1 == pozisyon) || (dusmanKonumu2 == pozisyon)))) {// če se naša oblika dotakne sovražnikovih oblik oyunBitti ();} // igra je končana if (dusmaninYdeKonumu> 40) {// če naša oblika pobegne pred sovražniki dusmanOldu = true; // ubijanje sovražnikovih oblik skor ++;} // zvišanje rezultata enega za drugim // povečanje hitrosti glede na rezultat if (skor> = 0 && skor10 && skor20 && skor30 && skor <= 40) {hiz = 3; zamuda (40); }}

4. korak: KODA BITMAP

Za oblike morate vključiti tudi slikovno sliko. To mora biti datoteka.c in isto ime s kodnim imenom. Prav tako mora biti v isti datoteki.

// ------------------------------------------------ ------------------------------ // Datoteka, ki jo ustvari LCD Assistant // https://en.radzio.dxp.pl /bitmap_converter/// --------------------------------------------- --------------------------------- #include // include za funkcijo progmem

const unsigned char arac PROGMEM = {// naša bitna slika oblike

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

const unsigned char dusman_araci PROGMEM = {// bitna slika sovražnikove ladje

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

5. korak: HVALA ZA OGLED

HVALA ZA OGLED
HVALA ZA OGLED

Preden sem začel deliti svoje projekte, sem jih kodiral v turških besedah, tako da nisem mogel vsako besedo dati v angleščino. Tukaj so besede, ki uporabljajo ta projekt, Oyun = Igra

Arac = Oblika

Dusman = sovražnik

kontrol = nadzor

Konum, Yer = Lokacija

Oyun Bitti = Igra je končana

Skor = rezultat

Hiz = hitrost

Priporočena: