Cuprins:

Noțiuni de bază despre interfața Arduino TFT: 10 pași (cu imagini)
Noțiuni de bază despre interfața Arduino TFT: 10 pași (cu imagini)

Video: Noțiuni de bază despre interfața Arduino TFT: 10 pași (cu imagini)

Video: Noțiuni de bază despre interfața Arduino TFT: 10 pași (cu imagini)
Video: Notiuni esentiale de calculatoare | 7 lucruri vitale pentru viitorii programatori (LIVE#1) 2024, Noiembrie
Anonim
Noțiuni de bază despre interfațarea TFT Arduino
Noțiuni de bază despre interfațarea TFT Arduino

Ecranele tactile TFT sunt interfața grafică uimitoare care poate fi utilizată cu microcontrolere precum Atmel, PIC, STM, deoarece are o gamă largă de culori, o capacitate grafică bună și o bună mapare a pixelilor.

Astăzi mergem la interfață Shield LCD TFT de 2,4 inci cu Arduino.

Acest scut este pentru Arduino UNO, dar voi învăța cum să-l folosesc cu Arduino Mega dintr-un motiv foarte logic, „Memoria programului”.

Prin utilizarea acestui ecran TFT LCD color putem afișa caractere, șiruri, interfață buton, imagini bitmap, etc. pe ecranul TFT LCD color.

Pasul 1: Cerințe hardware și software

Cerințe hardware și software
Cerințe hardware și software
Cerințe hardware și software
Cerințe hardware și software

Pentru a face interfața scut cu mega Arduino, avem nevoie de următoarele.

HARDWARE:

• Arduino mega

• LCD TFT de 2,4 / 2,8 / 3,2 inci

• Cablu USB

SOFTWARE

• IDE Arduino

• Biblioteca UTFT / Biblioteca spfd5408

Shield-ul este creat inițial pentru plăcile Arduino UNO, care pot fi utilizate cu mega Arduino.

Există două probleme principale în timpul utilizării acestuia cu Arduino UNO: „Memorie de stocare” și utilizarea pinilor.

Este dificil să utilizați pinii neutilizați, care sunt disponibili pe UNO, în timp ce este mai bine cu Arduino MEGA, deoarece ne-au rămas mai mulți pin I / O.

În pasul următor, voi arăta cum să editați biblioteca UTFT pentru a utiliza scutul TFT

Pasul 2: Modificarea UTFT Lib

Modificarea UTFT Lib
Modificarea UTFT Lib

Această bibliotecă este continuarea bibliotecilor mele ITDB02_Graph, ITDB02_Graph16 și RGB_GLCD pentru Arduino și chipKit. Pe măsură ce numărul de module de afișare și controlere acceptate a început să crească, am simțit că este timpul să fac o singură bibliotecă universală, deoarece va fi mult mai ușor de întreținut în viitor.

Arduino MEGA are 256 kb memorie de program. În plus, există 54 de pini.

Majoritatea sunt liberi de utilizat, iar analogul doar 5 este preluat din 16.

Această bibliotecă acceptă un număr de afișaje grafice de 8 biți, 16 biți și seriale și va funcționa atât cu plăci Arduino, chipKit, cât și cu selecții TI LaunchPad.

NOTĂ: Datorită dimensiunii bibliotecii, nu vă recomand să o utilizați pe ATmega328 (Arduino Uno) și ATmega32U4 (Arduino Leonardo) deoarece au doar 32KB de memorie flash. Va funcționa, dar veți fi extrem de limitat în memoria flash disponibilă pentru aplicația dvs

Pași

  • Descărcați Biblioteca UTFT
  • Dezarhivați biblioteca
  • Deschideți UTFT / hardware / avr în cazul Arduino sau în funcție de microcontrolerul utilizat
  • Deschideți HW_AVR_defines utilizând Notepad
  • Decomentați linia 7 pentru a activa scutul UNO pentru MEGA
  • Salvați fișierul și adăugați această bibliotecă la Arduino IDE

Acum am terminat cu acest pas! În pasul următor, voi arăta să folosesc biblioteca și să definesc pinii pentru Arduino Mega.

Pasul 3: Inițializarea scutului TFT

Initializarea Scutului TFT
Initializarea Scutului TFT

După editarea bibliotecii, adăugați-o în directorul Arduino.

În continuare, vă voi arăta cum să definiți modulul TFT potrivit pe care îl aveți

ar trebui să găsim numele modulului său în bibliotecă.

  • deschideți fișierul bibliotecă
  • accesați documentația

Puteți vedea aceste fișiere în Documentație

• UTFT:

Acest fișier arată toate funcțiile și comenzile incluse în această bibliotecă.

• UTFT_Requirement

Acest fișier conține informații despre module și despre modul în care este legat de bibliotecă, cum ar fi configurațiile pinilor

• UTFT_Supported_display_modules _ & _ controller

Aceasta este ținta noastră, acest fișier are numele modulelor și scuturilor care sunt acceptate de această bibliotecă, puteți vedea în ea o listă de nume de module și nume de module pentru UTFT pe care ar trebui să le utilizați pentru a defini modulul dumneavoastră.

Pași pentru definirea TFT:

Deschideți fișierul controler UTFT_Supported_display_modules _ & _ din bibliotecă

  • Deschideți fișierul controler UTFT_Supported_display_modules _ & _ din bibliotecă
  • Găsiți modelele pentru UTFT pentru modulele (scutul) pe care le aveți.
  • Acum, pentru a defini o funcție UTFT pe Arduino IDE, folosim comanda:

Numele UTFT (modul, Rs, Wr, Cs, Rst);

Deschideți fișierul UTFT_Requirement din bibliotecă

Din document, știm că pinii sunt localizați pe pinii A5, A4, A3 și A2.

folosim comanda:

UTFT myGLCD (ITDB28, 19, 18, 17, 16); # rețineți că pinii 19, 18, 17, 16 din Arduino Mega

UTFT myGLCD (ITDB28, A5, A4, A3, A2); # rețineți că pinii A5, A4, A3, A2 din Arduino UNO

Și gata! Acum puteți utiliza exemplele de bibliotecă de pe IDE-ul Arduino cu următoarele modificări.

Pasul 4: Hello World de bază

Bună ziua lumea
Bună ziua lumea

#include // Declară ce fonturi vom folosi

extern uint8_t BigFont ; extern uint8_t SevenSegNumFont ; // Nu uitați să modificați parametrul modelului pentru a se potrivi modulului dvs. de afișare! UTFT myGLCD (ITDB28, A5, A4, A3, A2); void setup () {myGLCD. InitLCD (); myGLCD.clrScr (); myGLCD.setFont (BigFont); } void loop () {myGLCD.setColor (0, 255, 0); // verde myGLCD.print ("HELLO WORLD", 45, 100); while (adevărat) {}; }

Pasul 5: Fonturi UTFT

Fonturi UTFT
Fonturi UTFT

#include // Declară ce fonturi vom folosi

extern uint8_t SmallFont ; extern uint8_t BigFont ; extern uint8_t SevenSegNumFont ; // Setați pinii la cei corecți pentru scutul dvs. de dezvoltare // ----------------------------------- ------------------------- // Arduino Uno / 2009: // ---------------- --- // Standard Arduino Uno / 2009 shield:, A5, A4, A3, A2 // DisplayModule Arduino Uno TFT shield:, A5, A4, A3, A2 // // Arduino Mega: // ----- -------------- // Standard Arduino Mega / Due shield:, 38, 39, 40, 41 // CTE TFT LCD / SD Shield pentru Arduino Mega:, 38, 39, 40, 41 // // Nu uitați să modificați parametrul modelului pentru a se potrivi modulului dvs. de afișare! UTFT myGLCD (ITDB32S, 38, 39, 40, 41); void setup () {myGLCD. InitLCD () myGLCD.clrScr (); } void loop () {myGLCD.setColor (0, 255, 0); myGLCD.setBackColor (0, 0, 0); myGLCD.setFont (BigFont); myGLCD.print ("! \" # $% & '() * +, -. / ", CENTER, 0); myGLCD.print (" 0123456789:;? ", CENTER, 16); myGLCD.print (" @ ABCDEFGHIJKLMNO ", CENTER, 32); myGLCD.print (" PQRSTUVWXYZ ^ _ ", CENTER, 48); myGLCD.print (" `abcdefghijklmno", CENTER, 64); myGLCD.print ("pqrstuvwxyz {|} ~ ", CENTER, 80); myGLCD.setFont (SmallFont); myGLCD.print ("! / "# $% & '() * +, -. / 0123456789:;?", CENTER, 120); myGLCD.print ("@ ABCDEFGHIJKLMNOPQRSTUVWXYZ ^ _", CENTRE, 132); myGLCD.print ("` abcdefghijklmnopqrstuvwxyz {|} ~ ", CENTER, 144); myGLCD.setFont (SevenSegNumFont); myGLCD.print ("0123456789", CENTRE, 190); while (1) {}; }

Pasul 6: Forme, linii și model UTFT

Forme, linii și model UTFT
Forme, linii și model UTFT

#includeți "UTFT.h" // Declarați ce fonturi vom folosiextern uint8_t SmallFont ; // Setați pinii la cei corecți pentru scutul dvs. de dezvoltare // -------------- ---------------------------------------------- // Arduino Uno / 2009: // ------------------- // Standard Arduino Uno / 2009 shield:, A5, A4, A3, A2 // DisplayModule Arduino Uno TFT shield:, A5, A4, A3, A2 // // Arduino Mega: // ------------------- // Standard Arduino Mega / Due shield:, 38, 39, 40, 41 // CTE TFT LCD / SD Shield pentru Arduino Mega:, 38, 39, 40, 41 // // Nu uitați să modificați parametrul modelului pentru a se potrivi cu modulul dvs. de afișare! UTFT myGLCD (ITDB32S, 38, 39, 40, 41); void setup () {randomSeed (analogRead (0)); // Configurați ecranul LCD myGLCD. InitLCD (); myGLCD.setFont (SmallFont); }

bucla nulă ()

{int buf [318]; int x, x2; int y, y2; int r; // Ștergeți ecranul și desenați cadrul myGLCD.clrScr (); myGLCD.setColor (255, 0, 0); myGLCD.fillRect (0, 0, 319, 13); myGLCD.setColor (64, 64, 64); myGLCD.fillRect (0, 226, 319, 239); myGLCD.setColor (255, 255, 255); myGLCD.setBackColor (255, 0, 0); myGLCD.print ("* Biblioteca universală de afișare color TFT *", CENTER, 1); myGLCD.setBackColor (64, 64, 64); myGLCD.setColor (255, 255, 0); myGLCD.print ("", CENTRE, 227); myGLCD.setColor (0, 0, 255); myGLCD.drawRect (0, 14, 319, 225); // Desenați reteta myGLCD.setColor (0, 0, 255); myGLCD.setBackColor (0, 0, 0); myGLCD.drawLine (159, 15, 159, 224); myGLCD.drawLine (1, 119, 318, 119); pentru (int i = 9; i <310; i + = 10) myGLCD.drawLine (i, 117, i, 121); for (int i = 19; i <220; i + = 10) myGLCD.drawLine (157, i, 161, i); // Desenați linii de sin-, cos și bronz myGLCD.setColor (0, 255, 255); myGLCD.print ("Sin", 5, 15); for (int i = 1; i <318; i ++) {myGLCD.drawPixel (i, 119+ (sin (((i * 1.13) * 3.14) / 180) * 95)); } myGLCD.setColor (255, 0, 0); myGLCD.print ("Cos", 5, 27); for (int i = 1; i <318; i ++) {myGLCD.drawPixel (i, 119+ (cos (((i * 1.13) * 3.14) / 180) * 95)); } myGLCD.setColor (255, 255, 0); myGLCD.print ("Tan", 5, 39); for (int i = 1; i <318; i ++) {myGLCD.drawPixel (i, 119+ (tan (((i * 1.13) * 3.14) / 180))); } întârziere (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); myGLCD.setColor (0, 0, 255); myGLCD.setBackColor (0, 0, 0); myGLCD.drawLine (159, 15, 159, 224); myGLCD.drawLine (1, 119, 318, 119); // Desenați o undă sinusoidală în mișcare x = 1; for (int i = 1; i319) {if ((x == 159) || (buf [x-1] == 119)) myGLCD.setColor (0, 0, 255); altfel myGLCD.setColor (0, 0, 0); myGLCD.drawPixel (x, buf [x-1]); } myGLCD.setColor (0, 255, 255); y = 119 + (sin (((i * 1.1) * 3.14) / 180) * (90- (i / 100))); myGLCD.drawPixel (x, y); buf [x-1] = y; } întârziere (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Desenați câteva dreptunghiuri umplute pentru (int i = 1; i <6; i ++) {switch (i) {caz 1: myGLCD.setColor (255, 0, 255); pauză; cazul 2: myGLCD.setColor (255, 0, 0); pauză; caz 3: myGLCD.setColor (0, 255, 0); pauză; cazul 4: myGLCD.setColor (0, 0, 255); pauză; cazul 5: myGLCD.setColor (255, 255, 0); pauză; } myGLCD.fillRect (70+ (i * 20), 30+ (i * 20), 130+ (i * 20), 90+ (i * 20)); } întârziere (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Desenați câteva dreptunghiuri rotunjite umplute pentru (int i = 1; i <6; i ++) {comutator (i) {caz 1: myGLCD.setColor (255, 0, 255); pauză; cazul 2: myGLCD.setColor (255, 0, 0); pauză; caz 3: myGLCD.setColor (0, 255, 0); pauză; cazul 4: myGLCD.setColor (0, 0, 255); pauză; cazul 5: myGLCD.setColor (255, 255, 0); pauză; } myGLCD.fillRoundRect (190- (i * 20), 30+ (i * 20), 250- (i * 20), 90+ (i * 20)); } întârziere (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Desenați câteva cercuri umplute pentru (int i = 1; i <6; i ++) {switch (i) {caz 1: myGLCD.setColor (255, 0, 255); pauză; cazul 2: myGLCD.setColor (255, 0, 0); pauză; caz 3: myGLCD.setColor (0, 255, 0); pauză; cazul 4: myGLCD.setColor (0, 0, 255); pauză; cazul 5: myGLCD.setColor (255, 255, 0); pauză; } myGLCD.fillCircle (100+ (i * 20), 60+ (i * 20), 30); } întârziere (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Desenați câteva linii într-un model myGLCD.setColor (255, 0, 0); for (int i = 15; i <224; i + = 5) {myGLCD.drawLine (1, i, (i * 1.44) -10, 224); } myGLCD.setColor (255, 0, 0); for (int i = 224; i> 15; i- = 5) {myGLCD.drawLine (318, i, (i * 1.44) -11, 15); } myGLCD.setColor (0, 255, 255); for (int i = 224; i> 15; i- = 5) {myGLCD.drawLine (1, i, 331- (i * 1.44), 15); } myGLCD.setColor (0, 255, 255); for (int i = 15; i <224; i + = 5) {myGLCD.drawLine (318, i, 330- (i * 1.44), 224); } întârziere (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Desenați câteva cercuri aleatorii pentru (int i = 0; i <100; i ++) {myGLCD.setColor (random (255), random (255), random (255))); x = 32 + aleatoriu (256); y = 45 + aleatoriu (146); r = aleatoriu (30); myGLCD.drawCircle (x, y, r); } întârziere (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Desenați câteva dreptunghiuri aleatorii pentru (int i = 0; i <100; i ++) {myGLCD.setColor (random (255), random (255), random (255))); x = 2 + aleatoriu (316); y = 16 + aleatoriu (207); x2 = 2 + aleatoriu (316); y2 = 16 + aleatoriu (207); myGLCD.drawRect (x, y, x2, y2); } întârziere (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Desenați câteva dreptunghiuri rotunjite aleatorii pentru (int i = 0; i <100; i ++) {myGLCD.setColor (random (255), random (255), random (255)); x = 2 + aleatoriu (316); y = 16 + aleatoriu (207); x2 = 2 + aleatoriu (316); y2 = 16 + aleatoriu (207); myGLCD.drawRoundRect (x, y, x2, y2); } întârziere (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); for (int i = 0; i <100; i ++) {myGLCD.setColor (random (255), random (255), random (255)); x = 2 + aleatoriu (316); y = 16 + aleatoriu (209); x2 = 2 + aleatoriu (316); y2 = 16 + aleatoriu (209); myGLCD.drawLine (x, y, x2, y2); } întârziere (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); for (int i = 0; i <10000; i ++) {myGLCD.setColor (random (255), random (255), random (255)); myGLCD.drawPixel (2 + random (316), 16 + random (209)); } întârziere (2000); myGLCD.fillScr (0, 0, 255); myGLCD.setColor (255, 0, 0); myGLCD.fillRoundRect (80, 70, 239, 169); myGLCD.setColor (255, 255, 255); myGLCD.setBackColor (255, 0, 0); myGLCD.print ("Gata!", CENTRE, 93); myGLCD.print ("Repornirea într-un", CENTER, 119); myGLCD.print („câteva secunde …”, CENTRE, 132); myGLCD.setColor (0, 255, 0); myGLCD.setBackColor (0, 0, 255); myGLCD.print ("Runtime: (msecs)", CENTER, 210); myGLCD.printNumI (millis (), CENTRE, 225); întârziere (10000); }

Pasul 7: UTFT Bitmap

UTFT Bitmap
UTFT Bitmap

#include

#include // Declarați ce fonturi vom folosi extern uint8_t SmallFont ; // Setați pinii pe cei corecți pentru scutul dvs. de dezvoltare // ------------------ ------------------------------------------ // Arduino Uno / 2009: / / ------------------- // Standard Arduino Uno / 2009 shield:, A5, A4, A3, A2 // DisplayModule Arduino Uno TFT shield:, A5, A4, A3, A2 // // Arduino Mega: // ------------------- // Standard Arduino Mega / Due shield:, 38, 39, 40, 41 // CTE TFT LCD / SD Shield pentru Arduino Mega:, 38, 39, 40, 41 // // Nu uitați să modificați parametrii modelului pentru a se potrivi cu modulul dvs. de afișare! UTFT myGLCD (ITDB32S, A5, A4, A3, A2); extern nesemnat int info [0x400]; pictogramă externă nesemnată int [0x400]; extern unsigned int tux [0x400]; void setup () {myGLCD. InitLCD (); myGLCD.setFont (SmallFont); } void loop () {myGLCD.fillScr (255, 255, 255); myGLCD.setColor (255, 255, 255); myGLCD.print („*** O grilă de 10 pe 7 a unei pictograme de 32x32 ***”, CENTER, 228); for (int x = 0; x <10; x ++) for (int y = 0; y <7; y ++) myGLCD.drawBitmap (x * 32, y * 32, 32, 32, info); întârziere (5000); myGLCD.fillScr (255, 255, 255); myGLCD.setColor (255, 255, 255); myGLCD.print („Două pictograme diferite la scara 1 la 4”, CENTRE, 228); int x = 0; for (int s = 0; s0; s--) {myGLCD.drawBitmap (x, 224- (s * 32), 32, 32, pictogramă, s); x + = (s * 32); } întârziere (5000); }

Pasul 8: interfața butoanelor

Interfața butoanelor
Interfața butoanelor

#include #include // Inițializați afișajul // ------------------ // Setați pinii la cei corecți pentru placa dvs. de dezvoltare // ------- -------------------------------------------------- - // Standard Arduino Uno / 2009 Shield:, 19, 18, 17, 16 // Standard Arduino Mega / Due shield:, 38, 39, 40, 41 // CTE TFT LCD / SD Shield pentru Arduino Due:, 25, 26, 27, 28 // Teensy 3.x TFT Test Board:, 23, 22, 3, 4 // ElecHouse TFT LCD / SD Shield pentru Arduino Due:, 22, 23, 31, 33 // // Nu uitați să modificați parametrul modelului pentru a se potrivi cu modulul dvs. de afișare! UTFT myGLCD (ITDB32S, 38, 39, 40, 41); // Inițializați ecranul tactil // ---------------------- // Setați pinii corect cele pentru placa dvs. de dezvoltare // ------------------------------------------- ---------------- // Standard Arduino Uno / 2009 Shield: 15, 10, 14, 9, 8 // Standard Arduino Mega / Due shield: 6, 5, 4, 3, 2 // CTE TFT LCD / SD Shield pentru Arduino Due: 6, 5, 4, 3, 2 // Placă de testare TFT Teensy 3.x: 26, 31, 27, 28, 29 // ElecHouse TFT LCD / SD Shield pentru Arduino Due: 25, 26, 27, 29, 30 // URTouch myTouch (6, 5, 4, 3, 2); // Declarați ce fonturi vom folosi extern uint8_t BigFont ; int x, y; char stCurrent [20] = ""; int stCurrentLen = 0; char stLast [20] = ""; / ************************* ** Funcții personalizate ** ********* **************** / void drawButtons () {// Desenați rândul superior al butoanelor pentru (x = 0; x <5; x ++) {myGLCD.setColor (0, 0, 255); myGLCD.fillRoundRect (10+ (x * 60), 10, 60+ (x * 60), 60); myGLCD.setColor (255, 255, 255); myGLCD.drawRoundRect (10+ (x * 60), 10, 60+ (x * 60), 60); myGLCD.printNumI (x + 1, 27+ (x * 60), 27); } // Desenați rândul central de butoane pentru (x = 0; x <5; x ++) {myGLCD.setColor (0, 0, 255); myGLCD.fillRoundRect (10+ (x * 60), 70, 60+ (x * 60), 120); myGLCD.setColor (255, 255, 255); myGLCD.drawRoundRect (10+ (x * 60), 70, 60+ (x * 60), 120); if (x <4) myGLCD.printNumI (x + 6, 27+ (x * 60), 87); } myGLCD.print („0”, 267, 87); // Desenați rândul inferior de butoane myGLCD.setColor (0, 0, 255); myGLCD.fillRoundRect (10, 130, 150, 180); myGLCD.setColor (255, 255, 255); myGLCD.drawRoundRect (10, 130, 150, 180); myGLCD.print („Clear”, 40, 147); myGLCD.setColor (0, 0, 255); myGLCD.fillRoundRect (160, 130, 300, 180); myGLCD.setColor (255, 255, 255); myGLCD.drawRoundRect (160, 130, 300, 180); myGLCD.print ("Enter", 190, 147); myGLCD.setBackColor (0, 0, 0); } void updateStr (int val) {if (stCurrentLen = 10) && (y = 10) && (x = 70) && (x = 130) && (x = 190) && (x = 250) && (x = 70) && (y = 10) && (x = 70) && (x = 130) && (x = 190) && (x = 250) && (x = 130) && (y = 10) && (x = 160) && (x0) {pentru (x = 0; x

Pasul 9: Flappy Bird

Flappy Bird
Flappy Bird

#include #include #include // ==== Crearea obiectelor UTFT myGLCD (SSD1289, 38, 39, 40, 41); // Parametrii ar trebui să fie ajustați la modelul dvs. Display / Schield UTouch myTouch (6, 5, 4, 3, 2); // ==== Definirea fonturilor extern uint8_t SmallFont ; extern uint8_t BigFont ; extern uint8_t SevenSegNumFont ; extern unsigned int bird01 [0x41A]; // Bird Bitmapint x, y; // Variabile pentru coordonatele unde a fost apăsat afișajul // Floppy Bird int xP = 319; int yP = 100; int yB = 50; int movingRate = 3; int FallRateInt = 0; float fallRate = 0; int scor = 0; int lastSpeedUpScore = 0; int cel mai înalt scor; ecran boolean Presat = fals; boolean gameStarted = false; void setup () {// Inițiază afișarea myGLCD. InitLCD (); myGLCD.clrScr (); myTouch. InitTouch (); myTouch.setPrecision (PREC_MEDIUM); maximumScore = EEPROM.read (0); // Citiți cel mai mare scor din EEPROM initiateGame (); // Inițiați jocul} void loop () {xP = xP-movingRate; // xP - coordonata x a stâlpilor; interval: 319 - (-51) drawPilars (xP, yP); // Desenează stâlpii // yB - coordonata y a păsării, care depinde de valoarea variabilei Falling Rate yB + = FallRateInt; FallRate = FallRate + 0,4; // Fiecare intrare crește rata de cădere, astfel încât să putem efectul accelerației / gravitației fallRateInt = int (fallRate); // Verifică coliziunea dacă (yB> = 180 || yB <= 0) {// gameOver sus și jos (); } if ((xP = 5) && (yB <= yP-2)) {// stâlp superior gameOver (); } if ((xP = 5) && (yB> = yP + 60)) {// jos pilon jocOver (); } // Desenează pasărea drawBird (yB); // După ce stâlpul a trecut prin ecran dacă (xPRESET = 250) && (x = 0) && (y = 0) && (x = 30) && (y = 270) {myGLCD.setColor (0, 200, 20); myGLCD.fillRect (318, 0, x, y-1); myGLCD.setColor (0, 0, 0); myGLCD.drawRect (319, 0, x-1, y); myGLCD.setColor (0, 200, 20); myGLCD.fillRect (318, y + 81, x, 203); myGLCD.setColor (0, 0, 0); myGLCD.drawRect (319, y + 80, x-1, 204); } else if (x scorul cel mai înalt) {scorul cel mai înalt = scor; EEPROM.write (0, cel mai înalt scor); } // Resetează variabilele pentru a începe valorile poziției xP = 319; yB = 50; FallRate = 0; scor = 0; lastSpeedUpScore = 0; movingRate = 3; gameStarted = false; // Reporniți jocul initiateGame (); }

Pasul 10: Lucrarea proiectului

Puteți găsi codul sursă în depozitul meu Github.

Link:

Dă un deget mare dacă te-a ajutat cu adevărat și urmărește canalul meu pentru proiecte interesante:)

Distribuiți acest videoclip dacă doriți.

Mă bucur că v-ați abonat:

Mulțumesc pentru lectură!

Recomandat: