Taula de continguts:

Fonaments bàsics de la interfície TFT Arduino: 10 passos (amb imatges)
Fonaments bàsics de la interfície TFT Arduino: 10 passos (amb imatges)

Vídeo: Fonaments bàsics de la interfície TFT Arduino: 10 passos (amb imatges)

Vídeo: Fonaments bàsics de la interfície TFT Arduino: 10 passos (amb imatges)
Vídeo: MKS Gen L - Основы 2024, De novembre
Anonim
Fonaments bàsics de la interfície TFT Arduino
Fonaments bàsics de la interfície TFT Arduino

Les pantalles tàctils TFT són la increïble interfície gràfica que es pot utilitzar amb microcontroladors com Atmel, PIC, STM, ja que té una àmplia gamma de colors, una bona capacitat gràfica i una bona assignació de píxels.

Avui anem a la interfície TFT LCD Shield de 2,4 polzades amb Arduino.

Aquest escut és per a Arduino UNO, però us ensenyaré a fer-lo servir amb Arduino Mega per una raó molt lògica, la "Memòria del programa".

En utilitzar aquest escut TFT LCD en color podem mostrar personatges, cadenes, interfície de botons, imatges de mapa de bits, etc. a la pantalla TFT LCD en color.

Pas 1: Requisits de maquinari i programari

Requisits de maquinari i programari
Requisits de maquinari i programari
Requisits de maquinari i programari
Requisits de maquinari i programari

Per fer la interfície d’escut amb el mega Arduino, necessitem el següent.

HARDWARE:

• Arduino mega

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

• Cable USB

PROGRAMARI

• IDE Arduino

• Biblioteca UTFT / Biblioteca spfd5408

El Shield es fabricava originalment per a les plaques Arduino UNO, que es poden utilitzar amb Arduino mega.

Hi ha dos problemes principals en utilitzar-lo amb Arduino UNO: "Memòria d'emmagatzematge" i ús de pins.

És difícil utilitzar els pins no utilitzats que estan disponibles a UNO, mentre que és millor amb Arduino MEGA, ja que ens queden més pins d'E / S.

Al següent pas, mostraré com editar la biblioteca UTFT per utilitzar l'escut TFT

Pas 2: ajustar UTFT Lib

Ajustament UTFT Lib
Ajustament UTFT Lib

Aquesta biblioteca és la continuació de les meves biblioteques ITDB02_Graph, ITDB02_Graph16 i RGB_GLCD per a Arduino i chipKit. A mesura que el nombre de controladors i mòduls de visualització compatibles començava a augmentar, sentia que era el moment de fer una única biblioteca universal, ja que serà molt més fàcil de mantenir en el futur.

Arduino MEGA té 256 kb de memòria de programa. A més, hi ha 54 pins.

La majoria d’ells són d’ús lliure, i l’analògic només 5 es pren de 16.

Aquesta biblioteca admet diverses pantalles gràfiques de 8 bits, 16 bits i sèries i funcionarà tant amb Arduino, com amb les plaques chipKit i amb alguns TI LaunchPads.

NOTA: A causa de la mida de la biblioteca, no recomano utilitzar-la a ATmega328 (Arduino Uno) i ATmega32U4 (Arduino Leonardo), ja que només tenen 32 KB de memòria flash. Funcionarà, però quedarà molt limitat en la memòria flash disponible per a la seva aplicació

Passos

  • Descarregueu la biblioteca UTFT
  • Descomprimiu la biblioteca
  • Obriu UTFT / hardware / avr en cas d'Arduino o en funció del microcontrolador utilitzat
  • Obriu HW_AVR_defines mitjançant el bloc de notes
  • Descomenteu la línia 7 per habilitar l'escut UNO per a MEGA
  • Deseu el fitxer i afegiu aquesta biblioteca a Arduino IDE

Ara hem acabat amb aquest pas! Al següent pas, mostraré utilitzar la biblioteca i definir els pins per a Arduino Mega.

Pas 3: inicialització de l’escut TFT

Inicialització de l’escut TFT
Inicialització de l’escut TFT

Després d'editar la biblioteca, afegiu-la al directori Arduino.

A continuació, us mostraré com definir el mòdul TFT adequat que teniu

hauríem de trobar el nom del mòdul a la biblioteca.

  • obriu el fitxer de la biblioteca
  • aneu a la documentació

Podeu veure aquests fitxers a la documentació

• UTFT:

Aquest fitxer mostra totes les funcions i ordres incloses en aquesta biblioteca.

• UTFT_Requisit

Aquest fitxer conté informació sobre els mòduls i la seva relació amb la biblioteca, com ara les configuracions de pins

• Controlador UTFT_Supported_display_modules _ & _

Aquest és el nostre objectiu, aquest fitxer té els noms dels mòduls i escuts que són compatibles amb aquesta biblioteca; hi podeu veure una llista de noms de mòduls i noms de mòduls per a l'UTFT que hauríeu d'utilitzar per definir el vostre mòdul.

Passos per definir el TFT:

Obriu el fitxer del controlador UTFT_Supported_display_modules _ & _ de la biblioteca

  • Obriu el fitxer del controlador UTFT_Supported_display_modules _ & _ de la biblioteca
  • Cerqueu els models per a UTFT per als mòduls (blindatge) que teniu.
  • Ara per definir una funció UTFT a l'IDE Arduino, fem servir l'ordre:

Nom UTFT (mòdul, Rs, Wr, Cs, Rst);

Obriu el fitxer UTFT_Requirement de la biblioteca

Pel document, sabem que els pins es troben als pins A5, A4, A3 i A2.

fem servir l'ordre:

UTFT myGLCD (ITDB28, 19, 18, 17, 16); # tingueu en compte que els pins 19, 18, 17, 16 de l'Arduino Mega

UTFT myGLCD (ITDB28, A5, A4, A3, A2); # Tingueu en compte que els pins A5, A4, A3, A2 a Arduino UNO

I fet! Ara podeu utilitzar els exemples de biblioteca de l’IDE Arduino amb els canvis següents.

Pas 4: Hello World bàsic

Hello World bàsic
Hello World bàsic

#include // Declareu quins tipus de lletra utilitzarem

extern uint8_t BigFont ; extern uint8_t SevenSegNumFont ; // Recordeu de canviar el paràmetre del model per adaptar-lo al vostre mòdul de visualització. UTFT myGLCD (ITDB28, A5, A4, A3, A2); void setup () {myGLCD. InitLCD (); myGLCD.clrScr (); myGLCD.setFont (BigFont); } void loop () {myGLCD.setColor (0, 255, 0); // green myGLCD.print ("HOLA MÓN", 45, 100); while (true) {}; }

Pas 5: tipus de lletra UTFT

Tipus de lletra UTFT
Tipus de lletra UTFT

#include // Declareu quins tipus de lletra utilitzarem

extern uint8_t SmallFont ; extern uint8_t BigFont ; extern uint8_t SevenSegNumFont ; // Estableix els pins als correctes per al teu escut de desenvolupament // ----------------------------------- ------------------------- // Arduino Uno / 2009: // ---------------- --- // Escut estàndard Arduino Uno / 2009:, A5, A4, A3, A2 // DisplayModule Escut TFT Arduino Uno:, A5, A4, A3, A2 // // Arduino Mega: // ----- -------------- // Estàndard Arduino Mega / Due shield:, 38, 39, 40, 41 // CTE TFT LCD / SD Shield per Arduino Mega:, 38, 39, 40, 41 // // Recordeu-vos de canviar el paràmetre del model per adaptar-lo al vostre mòdul de visualització. 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 ("! \" # $% & '() * +, -. / ", CENTRE, 0); myGLCD.print (" 0123456789:;? ", CENTRE, 16); myGLCD.print (" @ ABCDEFGHIJKLMNO ", CENTRE, 32); myGLCD.print (" PQRSTUVWXYZ ^ _ ", CENTRE, 48); myGLCD.print (" `abcdefghijklmno", CENTRE, 64); myGLCD.print ("pqrstuvwxyz {|} ~ ", CENTRE, 80); myGLCD.setFont (SmallFont); myGLCD.print ("! / "# $% & '() * +, -. / 0123456789:;?", CENTRE, 120); myGLCD.print ("@ ABCDEFGHIJKLMNOPQRSTUVWXYZ ^ _", CENTRE, 132); myGLCD.print ("` abcdefghijklmnopqrstuvwxyz {|} ~ ", CENTRE, 144); myGLCD.setFont (SevenSegNumFont); myGLCD.print ("0123456789", CENTRE, 190); mentre que (1) {}; }

Pas 6: formes, línies i patrons UTFT

Formes, línies i patrons UTFT
Formes, línies i patrons UTFT

#include "UTFT.h" // Declareu quins tipus de lletra utilitzarem extern uint8_t SmallFont ; // Establiu els pins als correctes per al vostre escut de desenvolupament // -------------- ---------------------------------------------- // Arduino Uno / 2009: // ------------------- // Estàndard Arduino Uno / 2009 shield:, A5, A4, A3, A2 // DisplayModule Arduino Uno TFT shield:, A5, A4, A3, A2 // // Arduino Mega: // ------------------- // Arduino estàndard Mega / Due shield:, 38, 39, 40, 41 // CTE TFT LCD / SD Shield per Arduino Mega:, 38, 39, 40, 41 // // Recordeu-vos de canviar el paràmetre del model per adaptar-lo al vostre mòdul de visualització. UTFT myGLCD (ITDB32S, 38, 39, 40, 41); void setup () {randomSeed (analogRead (0)); // Configureu la pantalla LCD myGLCD. InitLCD (); myGLCD.setFont (SmallFont); }

bucle buit ()

{int buf [318]; int x, x2; int y, y2; int r; // Esborreu la pantalla i dibuixeu el marc 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 pantalla TFT en color *", CENTRE, 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); // Dibuixa mirades myGLCD.setColor (0, 0, 255); myGLCD.setBackColor (0, 0, 0); myGLCD.drawLine (159, 15, 159, 224); myGLCD.drawLine (1, 119, 318, 119); per a (int i = 9; i <310; i + = 10) myGLCD.drawLine (i, 117, i, 121); per a (int i = 19; i <220; i + = 10) myGLCD.drawLine (157, i, 161, i); // Dibuixeu línies de sin, cos i marró 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); per a (int i = 1; i <318; i ++) {myGLCD.drawPixel (i, 119+ (tan (((i * 1.13) * 3.14) / 180))); } demora (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); // Dibuixeu una ona sinusoïdal en moviment x = 1; per a (int i = 1; i319) {if ((x == 159) || (buf [x-1] == 119)) myGLCD.setColor (0, 0, 255); altrament 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; } demora (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Dibuixa alguns rectangles emplenats per a (int i = 1; i <6; i ++) {switch (i) {cas 1: myGLCD.setColor (255, 0, 255); trencar; cas 2: myGLCD.setColor (255, 0, 0); trencar; cas 3: myGLCD.setColor (0, 255, 0); trencar; cas 4: myGLCD.setColor (0, 0, 255); trencar; cas 5: myGLCD.setColor (255, 255, 0); trencar; } myGLCD.fillRect (70+ (i * 20), 30+ (i * 20), 130+ (i * 20), 90+ (i * 20)); } demora (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Dibuixa alguns rectangles omplerts i arrodonits per a (int i = 1; i <6; i ++) {commutador (i) {cas 1: myGLCD.setColor (255, 0, 255); trencar; cas 2: myGLCD.setColor (255, 0, 0); trencar; cas 3: myGLCD.setColor (0, 255, 0); trencar; cas 4: myGLCD.setColor (0, 0, 255); trencar; cas 5: myGLCD.setColor (255, 255, 0); trencar; } myGLCD.fillRoundRect (190- (i * 20), 30+ (i * 20), 250- (i * 20), 90+ (i * 20)); } demora (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Dibuixa alguns cercles omplerts per (int i = 1; i <6; i ++) {switch (i) {cas 1: myGLCD.setColor (255, 0, 255); trencar; cas 2: myGLCD.setColor (255, 0, 0); trencar; cas 3: myGLCD.setColor (0, 255, 0); trencar; cas 4: myGLCD.setColor (0, 0, 255); trencar; cas 5: myGLCD.setColor (255, 255, 0); trencar; } myGLCD.fillCircle (100+ (i * 20), 60+ (i * 20), 30); } demora (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Dibuixeu algunes línies en un patró 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); per a (int i = 224; i> 15; i- = 5) {myGLCD.drawLine (318, i, (i * 1,44) -11, 15); } myGLCD.setColor (0, 255, 255); per a (int i = 224; i> 15; i- = 5) {myGLCD.drawLine (1, i, 331- (i * 1.44), 15); } myGLCD.setColor (0, 255, 255); per a (int i = 15; i <224; i + = 5) {myGLCD.drawLine (318, i, 330- (i * 1.44), 224); } demora (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Dibuixa alguns cercles aleatoris per a (int i = 0; i <100; i ++) {myGLCD.setColor (random (255), random (255), random (255))); x = 32 + aleatori (256); y = 45 + aleatori (146); r = aleatori (30); myGLCD.drawCircle (x, y, r); } demora (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Dibuixa alguns rectangles aleatoris per a (int i = 0; i <100; i ++) {myGLCD.setColor (random (255), random (255), random (255))); x = 2 + aleatori (316); y = 16 + aleatori (207); x2 = 2 + aleatori (316); y2 = 16 + aleatori (207); myGLCD.drawRect (x, y, x2, y2); } demora (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Dibuixeu alguns rectangles arrodonits aleatoris per a (int i = 0; i <100; i ++) {myGLCD.setColor (random (255), random (255), random (255)); x = 2 + aleatori (316); y = 16 + aleatori (207); x2 = 2 + aleatori (316); y2 = 16 + aleatori (207); myGLCD.drawRoundRect (x, y, x2, y2); } demora (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 + aleatori (316); y = 16 + aleatori (209); x2 = 2 + aleatori (316); y2 = 16 + aleatori (209); myGLCD.drawLine (x, y, x2, y2); } demora (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)); } demora (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 ("Això és tot!", CENTRE, 93); myGLCD.print ("Reinici en un", CENTRE, 119); myGLCD.print ("pocs segons …", CENTRE, 132); myGLCD.setColor (0, 255, 0); myGLCD.setBackColor (0, 0, 255); myGLCD.print ("Temps d'execució: (msecs)", CENTRE, 210); myGLCD.printNumI (millis (), CENTRE, 225); retard (10000); }

Pas 7: mapa de bits UTFT

Mapa de bits UTFT
Mapa de bits UTFT

#incloure

#include // Declara quins tipus de lletra utilitzarem extern uint8_t SmallFont ; // Estableix els pins als correctes per al teu escut de desenvolupament // ------------------ ------------------------------------------ // Arduino Uno / 2009: / / ------------------- // Escut Arduino Uno / 2009 estàndard:, A5, A4, A3, A2 // Escut TFT DisplayModule Arduino Uno:, A5, A4, A3, A2 // // Arduino Mega: // ------------------- // Estàndard Arduino Mega / Due shield:, 38, 39, 40, 41 // CTE TFT LCD / SD Shield per Arduino Mega:, 38, 39, 40, 41 // // Recordeu-vos de canviar el paràmetre del model per adaptar-lo al vostre mòdul de visualització. UTFT myGLCD (ITDB32S, A5, A4, A3, A2); informació int sense signatura externa [0x400]; icona int sense signe extern [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 ("*** Una graella de 10 per 7 d'una icona de 32x32 ***", CENTRE, 228); for (int x = 0; x <10; x ++) for (int y = 0; y <7; y ++) myGLCD.drawBitmap (x * 32, y * 32, 32, 32, info); retard (5000); myGLCD.fillScr (255, 255, 255); myGLCD.setColor (255, 255, 255); myGLCD.print ("Dues icones diferents a escala 1 a 4", CENTRE, 228); int x = 0; for (int s = 0; s0; s--) {myGLCD.drawBitmap (x, 224- (s * 32), 32, 32, icon, s); x + = (s * 32); } retard (5000); }

Pas 8: Interfície de botons

Interfície de botons
Interfície de botons

#include #include // Inicialitza la visualització // ------------------ // Estableix els pins als correctes per al tauler de desenvolupament // ------- -------------------------------------------------- - // Estàndard Arduino Uno / 2009 Shield:, 19, 18, 17, 16 // Estàndard Arduino Mega / Due shield:, 38, 39, 40, 41 // CTE TFT LCD / SD Shield per Arduino Due:, 25, 26, 27, 28 // Taens de prova TFT Teensy 3.x:, 23, 22, 3, 4 // Escut TFT LCD / SD ElecHouse per Arduino Due:, 22, 23, 31, 33 // // Recorda canvieu el paràmetre del model per adaptar-lo al vostre mòdul de visualització. UTFT myGLCD (ITDB32S, 38, 39, 40, 41); // Inicialitzar la pantalla tàctil // ---------------------- // Estableix els pins al correcte per al vostre tauler de desenvolupament // ------------------------------------------- ---------------- // Estàndard Arduino Uno / 2009 Shield: 15, 10, 14, 9, 8 // Estàndard Arduino Mega / Due shield: 6, 5, 4, 3, 2 // CTE TFT LCD / SD Shield per Arduino Due: 6, 5, 4, 3, 2 // Teensy 3.x TFT Test Board: 26, 31, 27, 28, 29 // ElecHouse TFT LCD / SD Shield per Arduino Due: 25, 26, 27, 29, 30 // URTouch myTouch (6, 5, 4, 3, 2); // Declareu quins tipus de lletra utilitzarem extern uint8_t BigFont ; int x, y; char stCurrent [20] = ""; int stCurrentLen = 0; char stLast [20] = ""; / ************************** ** Funcions personalitzades ** ********* **************** / void drawButtons () {// Dibuixa la fila superior de botons de (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); } // Dibuixeu la fila central de botons per a (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); // Dibuixa la fila inferior de botons myGLCD.setColor (0, 0, 255); myGLCD.fillRoundRect (10, 130, 150, 180); myGLCD.setColor (255, 255, 255); myGLCD.drawRoundRect (10, 130, 150, 180); myGLCD.print ("Esborra", 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 ("Retorn", 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) {for (x = 0; x

Pas 9: Flappy Bird

Flappy Bird
Flappy Bird

#include #include #include // ==== Creació d'objectes UTFT myGLCD (SSD1289, 38, 39, 40, 41); // Els paràmetres s’han d’ajustar al model de pantalla / model d’escut UTouch myTouch (6, 5, 4, 3, 2); // ==== Definició de tipus de lletra extern uint8_t SmallFont ; extern uint8_t BigFont ; extern uint8_t SevenSegNumFont ; extern unsigned int bird01 [0x41A]; // Bitmapint Bird x, y; // Variables de les coordenades on s'ha premut la pantalla // Floppy Bird int xP = 319; int yP = 100; int yB = 50; int movingRate = 3; int FallRateInt = 0; float fallRate = 0; puntuació int = 0; int lastSpeedUpScore = 0; int scoreScore més alt; pantalla booleana Pressed = false; boolean gameStarted = false; void setup () {// Inicia la visualització myGLCD. InitLCD (); myGLCD.clrScr (); myTouch. InitTouch (); myTouch.setPrecision (PREC_MEDIUM); puntuació més alta = EEPROM.read (0); // Llegiu la puntuació més alta de l'EEPROM initiateGame (); // Inicieu el joc} void loop () {xP = xP-movingRate; // xP - coordenada x dels pilars; interval: 319 - (-51) drawPilars (xP, yP); // Dibuixa els pilars // yB - coordenada y de l’ocell que depèn del valor de la variable caigudaRata yB + = caigudaRataInt; caiguda = caiguda + 0,4; // Cada inetració augmenta la taxa de caiguda de manera que podem obtenir l’efecte de l’acceleració / gravetat fallRateInt = int (fallRate); // Comprova si hi ha col·lisió si (yB> = 180 || yB <= 0) {// joc superior i inferior (); } if ((xP = 5) && (yB <= yP-2)) {// pilar superior gameOver (); } if ((xP = 5) && (yB> = yP + 60)) {// pilar inferior jocOver (); } // Dibuixa l’ocell drawBird (yB); // Després que el pilar hagi passat per la pantalla si (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 ScoreScore més alt) {ScoreScore més alt=puntuació; EEPROM.write (0, puntuació més alta); } // Restableix les variables per iniciar els valors de posició xP = 319; yB = 50; caiguda = 0; puntuació = 0; lastSpeedUpScore = 0; RateRating = 3; gameStarted = fals; // Reinicieu el joc initiateGame (); }

Pas 10: Funcionament del projecte

Podeu trobar el codi font al meu dipòsit de Github.

Enllaç:

Doneu un cop de polze si realment us ha ajudat i seguiu el meu canal per a projectes interessants:)

Comparteix aquest vídeo si vols.

Feliç d’haver-vos subscrit:

Gràcies per llegir!

Recomanat: