INHOUDSOPGAWE:

Arduino TFT Interfacing Basics: 10 stappe (met foto's)
Arduino TFT Interfacing Basics: 10 stappe (met foto's)

Video: Arduino TFT Interfacing Basics: 10 stappe (met foto's)

Video: Arduino TFT Interfacing Basics: 10 stappe (met foto's)
Video: Control 10 output pins or relay using 10 push button switch with 1 Arduino input pin ANPB-V2 2024, November
Anonim
Arduino TFT Interfacing Basics
Arduino TFT Interfacing Basics

TFT -raakskerms is die wonderlike grafiese koppelvlak wat gebruik kan word met mikrobeheerders soos Atmel, PIC, STM, aangesien dit 'n wye kleurreeks het, 'n goeie grafiese vermoë en 'n goeie kartering van pixels.

Vandag gaan ons na 'n 2.4 -duim TFT LCD -skerm met Arduino.

Hierdie skild is vir Arduino UNO, maar ek sal leer om dit met Arduino Mega te gebruik om 'n baie logiese rede, die 'Programgeheue'.

Deur hierdie kleur TFT LCD -skild te gebruik, kan ons karakters, snare, knoppie -koppelvlak, bitmap -beelde, ens op die kleur TFT LCD wys.

Stap 1: Vereistes vir hardeware en sagteware

Vereistes vir hardeware en sagteware
Vereistes vir hardeware en sagteware
Vereistes vir hardeware en sagteware
Vereistes vir hardeware en sagteware

Om die skerm -koppelvlak met die Arduino mega te maak, benodig ons die volgende.

HARDWARE:

• Arduino mega

• TFT 2,4/2,8/3,2 duim LCD

• USB -kabel

SAGTEWARE

• Arduino IDE

• UTFT -biblioteek / spfd5408 -biblioteek

Die skild is oorspronklik gemaak vir die Arduino UNO -borde, wat saam met Arduino mega gebruik kan word.

Daar is twee hoofkwessies tydens die gebruik daarvan met die Arduino UNO: 'Stoorgeheue' en gebruik van penne.

Dit is moeilik om die ongebruikte penne wat op UNO beskikbaar is, te gebruik, terwyl dit beter is met Arduino MEGA, aangesien ons meer I/O -penne oor het.

In die volgende stap sal ek wys hoe u die UTFT -biblioteek kan wysig om die TFT -skild te gebruik

Stap 2: Aanpassing van UTFT Lib

Aanpassing van UTFT Lib
Aanpassing van UTFT Lib

Hierdie biblioteek is die voortsetting van my ITDB02_Graph-, ITDB02_Graph16- en RGB_GLCD -biblioteke vir Arduino en chipKit. Namate die aantal ondersteunde skermmodules en beheerders toeneem, het ek gevoel dat dit tyd is om 'n enkele universele biblioteek te maak, aangesien dit in die toekoms baie makliker sal wees om dit te onderhou.

Arduino MEGA het 256 kb programgeheue. Daarbenewens is daar 54 penne.

Die meeste van hulle is gratis om te gebruik, en die analoog van slegs 5 is geneem uit 16.

Hierdie biblioteek ondersteun 'n aantal 8bit-, 16bit- en seriële grafiese skerms, en werk met beide Arduino-, chipKit -borde en uitgesoekte TI LaunchPads.

OPMERKING: As gevolg van die grootte van die biblioteek, beveel ek dit nie aan om dit op ATmega328 (Arduino Uno) en ATmega32U4 (Arduino Leonardo) te gebruik nie, aangesien dit slegs 32KB flitsgeheue het. Dit sal werk, maar u sal die beskikbare flitsgeheue vir u toepassing ernstig beperk

Stappe

  • Laai die UTFT -biblioteek af
  • Pak die biblioteek uit
  • Maak UTFT / hardware / avr oop in die geval van Arduino of afhangende van die mikrobeheerder wat gebruik word
  • Maak HW_AVR_defines oop met Notepad
  • Los kommentaarlyn 7 op om UNO -skild vir MEGA moontlik te maak
  • Stoor die lêer en voeg hierdie biblioteek by Arduino IDE

Nou is ons klaar met hierdie stap! In die volgende stap sal ek wys hoe u die biblioteek gebruik en die penne vir Arduino Mega definieer.

Stap 3: Initialiseer die TFT -skild

Initialiseer die TFT -skild
Initialiseer die TFT -skild

Nadat u die biblioteek gewysig het, voeg dit by die Arduino -gids.

Vervolgens gaan ek u wys hoe u die regte TFT -module kan definieer

ons moet die module se naam in die biblioteek vind.

  • maak die biblioteeklêer oop
  • gaan na die dokumentasie

U kan hierdie lêers in die dokumentasie sien

• UTFT:

Hierdie lêer toon al die funksies en opdragte wat in hierdie biblioteek ingesluit is.

• UTFT_Vereiste

Hierdie lêer bevat inligting oor die modules en hoe dit met die biblioteek verband hou, soos penkonfigurasies

• UTFT_Supported_display_modules _ & _ kontroleerder

Dit is ons doelwit; hierdie lêer het die name van die modules en skilde wat deur hierdie biblioteek ondersteun word; u kan daarin 'n lys met module name en module name vir die UTFT sien wat u moet gebruik om u module te definieer.

Stappe om die TFT te definieer:

Maak die lêer UTFT_Supported_display_modules _ & _ van die biblioteek oop

  • Maak die lêer UTFT_Supported_display_modules _ & _ van die biblioteek oop
  • Vind die UTFT -modelle vir die modules (skild) wat u het.
  • Om 'n UTFT -funksie op die Arduino IDE te definieer, gebruik ons die opdrag:

UTFT -naam (module, Rs, Wr, Cs, Rst);

Maak UTFT_Requirement -lêer uit die biblioteek oop

Uit die dokument weet ons dat die penne op die A5-, A4-, A3- en A2 -penne geleë is.

ons gebruik die opdrag:

UTFT myGLCD (ITDB28, 19, 18, 17, 16); # let op dat penne 19, 18, 17, 16 in die Arduino Mega is

UTFT myGLCD (ITDB28, A5, A4, A3, A2); # let op die penne A5, A4, A3, A2 in die Arduino UNO

En klaar! Nou kan u die biblioteekvoorbeelde op die Arduino IDE gebruik met die volgende veranderinge.

Stap 4: Basiese Hello World

Basiese Hello World
Basiese Hello World

#include // Verklaar watter lettertipes ons gaan gebruik

eksterne uint8_t BigFont ; ekstern uint8_t SevenSegNumFont ; // Onthou om die modelparameter te verander om by u vertoonmodule te pas! UTFT myGLCD (ITDB28, A5, A4, A3, A2); ongeldige opstelling () {myGLCD. InitLCD (); myGLCD.clrScr (); myGLCD.setFont (BigFont); } leemte lus () {myGLCD.setColor (0, 255, 0); // groen myGLCD.print ("HELLO WORLD", 45, 100); terwyl (waar) {}; }

Stap 5: UTFT -lettertipes

UTFT -lettertipes
UTFT -lettertipes

#include // Verklaar watter lettertipes ons gaan gebruik

eksterne uint8_t SmallFont ; eksterne uint8_t BigFont ; ekstern uint8_t SevenSegNumFont ; // Stel die penne in die korrekte penne vir u ontwikkelingsskerm // ----------------------------------- ------------------------- // Arduino Uno / 2009: // ---------------- --- // Standaard Arduino Uno/2009-skild:, A5, A4, A3, A2 // DisplayModule Arduino Uno TFT-skild:, A5, A4, A3, A2 // // Arduino Mega: // ----- -------------- // Standard Arduino Mega/Due shield:, 38, 39, 40, 41 // CTE TFT LCD/SD Shield for Arduino Mega:, 38, 39, 40, 41 // // Onthou om die modelparameter te verander wat by u vertoonmodule pas! UTFT myGLCD (ITDB32S, 38, 39, 40, 41); ongeldige opstelling () {myGLCD. InitLCD () myGLCD.clrScr (); } leemte lus () {myGLCD.setColor (0, 255, 0); myGLCD.setBackColor (0, 0, 0); myGLCD.setFont (BigFont); myGLCD.print ("! \"#$%& '()*+, -./", CENTRE, 0); myGLCD.print (" 0123456789:;? ", CENTER, 16); myGLCD.print ("@ ABCDEFGHIJKLMNO ", CENTRE, 32); myGLCD.print (" PQRSTUVWXYZ ^_ ", CENTER, 48); myGLCD.print (" `abcdefghijklmno", CENTER, 64); myGLCD.print ("pqrstuvwxyz {| ~ ", CENTRE, 80); myGLCD.setFont (SmallFont); myGLCD.print ("! / "#$%& '()*+, -./0123456789:;?", CENTER, 120); myGLCD.print ("@ABCDEFGHIJKLMNOPQRSTUVWXYZ ^_", CENTRE, 132); myGLCD.print ("` `abcdefghijklmnopqrstuvwxyz {|} ~", CENTRE, 144); myGLCD.setFont (SevenSegNumFont); myGLCD.print ("0123456789", CENTRE, 190); terwyl (1) {}; }

Stap 6: UTFT -vorms, lyne en patrone

UTFT -vorms, lyne en patrone
UTFT -vorms, lyne en patrone

#sluit "UTFT.h" in // Verklaar watter lettertipes ons gaan gebruik; uint8_t SmallFont ; // Stel die penne op die regte letters vir u ontwikkelingsskerm // -------------- ---------------------------------------------- // 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 -skild vir Arduino Mega:, 38, 39, 40, 41 // // Onthou om die modelparameter te verander om by u vertoonmodule te pas! UTFT myGLCD (ITDB32S, 38, 39, 40, 41); ongeldige opstelling () {randomSeed (analogRead (0)); // Stel die LCD myGLCD. InitLCD () op; myGLCD.setFont (SmallFont); }

leemte lus ()

{int buf [318]; int x, x2; int y, y2; int r; // Maak die skerm skoon en teken die raam 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 (" * Universal Color TFT Display Library *", 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); // Teken syhare myGLCD.setColor (0, 0, 255); myGLCD.setBackColor (0, 0, 0); myGLCD.drawLine (159, 15, 159, 224); myGLCD.drawLine (1, 119, 318, 119); vir (int i = 9; i <310; i+= 10) myGLCD.drawLine (i, 117, i, 121); vir (int i = 19; i <220; i+= 10) myGLCD.drawLine (157, i, 161, i); // Teken sin-, cos- en tan-lyne myGLCD.setColor (0, 255, 255); myGLCD.print ("Sonde", 5, 15); vir (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); vir (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); vir (int i = 1; i <318; i ++) {myGLCD.drawPixel (i, 119+ (tan (((i*1.13)*3.14)/180))); } vertraging (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); // Teken 'n bewegende sinusgolf x = 1; vir (int i = 1; i319) {if ((x == 159) || (buf [x-1] == 119)) myGLCD.setColor (0, 0, 255); anders 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; } vertraging (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Teken 'n paar gevulde reghoeke vir (int i = 1; i <6; i ++) {switch (i) {case 1: myGLCD.setColor (255, 0, 255); breek; geval 2: myGLCD.setColor (255, 0, 0); breek; geval 3: myGLCD.setColor (0, 255, 0); breek; geval 4: myGLCD.setColor (0, 0, 255); breek; saak 5: myGLCD.setColor (255, 255, 0); breek; } myGLCD.fillRect (70+ (i*20), 30+ (i*20), 130+ (i*20), 90+ (i*20)); } vertraging (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Teken 'n paar gevulde, afgeronde reghoeke vir (int i = 1; i <6; i ++) {switch (i) {case 1: myGLCD.setColor (255, 0, 255); breek; geval 2: myGLCD.setColor (255, 0, 0); breek; geval 3: myGLCD.setColor (0, 255, 0); breek; geval 4: myGLCD.setColor (0, 0, 255); breek; saak 5: myGLCD.setColor (255, 255, 0); breek; } myGLCD.fillRoundRect (190- (i*20), 30+ (i*20), 250- (i*20), 90+ (i*20)); } vertraging (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Teken 'n paar gevulde sirkels vir (int i = 1; i <6; i ++) {switch (i) {case 1: myGLCD.setColor (255, 0, 255); breek; geval 2: myGLCD.setColor (255, 0, 0); breek; geval 3: myGLCD.setColor (0, 255, 0); breek; geval 4: myGLCD.setColor (0, 0, 255); breek; saak 5: myGLCD.setColor (255, 255, 0); breek; } myGLCD.fillCircle (100+ (i*20), 60+ (i*20), 30); } vertraging (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Trek 'n paar lyne in 'n patroon myGLCD.setColor (255, 0, 0); vir (int i = 15; i <224; i+= 5) {myGLCD.drawLine (1, i, (i*1.44) -10, 224); } myGLCD.setColor (255, 0, 0); vir (int i = 224; i> 15; i- = 5) {myGLCD.drawLine (318, i, (i*1.44) -11, 15); } myGLCD.setColor (0, 255, 255); vir (int i = 224; i> 15; i- = 5) {myGLCD.drawLine (1, i, 331- (i*1.44), 15); } myGLCD.setColor (0, 255, 255); vir (int i = 15; i <224; i+= 5) {myGLCD.drawLine (318, i, 330- (i*1.44), 224); } vertraging (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Teken 'n paar ewekansige sirkels vir (int i = 0; i <100; i ++) {myGLCD.setColor (random (255), random (255), random (255))); x = 32+ewekansig (256); y = 45+ewekansig (146); r = ewekansig (30); myGLCD.drawCircle (x, y, r); } vertraging (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Teken 'n paar ewekansige reghoeke vir (int i = 0; i <100; i ++) {myGLCD.setColor (random (255), random (255), random (255))); x = 2+ewekansig (316); y = 16+ewekansig (207); x2 = 2+ewekansig (316); y2 = 16+ewekansig (207); myGLCD.drawRect (x, y, x2, y2); } vertraging (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); // Teken 'n paar ewekansige afgeronde reghoeke vir (int i = 0; i <100; i ++) {myGLCD.setColor (random (255), random (255), random (255)); x = 2+ewekansig (316); y = 16+ewekansig (207); x2 = 2+ewekansig (316); y2 = 16+ewekansig (207); myGLCD.drawRoundRect (x, y, x2, y2); } vertraging (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); vir (int i = 0; i <100; i ++) {myGLCD.setColor (random (255), random (255), random (255)); x = 2+ewekansig (316); y = 16+ewekansig (209); x2 = 2+ewekansig (316); y2 = 16+ewekansig (209); myGLCD.drawLine (x, y, x2, y2); } vertraging (2000); myGLCD.setColor (0, 0, 0); myGLCD.fillRect (1, 15, 318, 224); vir (int i = 0; i <10000; i ++) {myGLCD.setColor (random (255), random (255), random (255)); myGLCD.drawPixel (2+random (316), 16+random (209)); } vertraging (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 ("Dit is dit!", CENTRE, 93); myGLCD.print ("Herbegin in a", CENTRE, 119); myGLCD.print ("'n paar sekondes …", CENTRE, 132); myGLCD.setColor (0, 255, 0); myGLCD.setBackColor (0, 0, 255); myGLCD.print ("Runtime: (msecs)", CENTER, 210); myGLCD.printNumI (millis (), CENTRE, 225); vertraging (10000); }

Stap 7: UTFT -bitmap

UTFT -bitmap
UTFT -bitmap

#insluit

#include // Gee aan watter lettertipes ons eksterne uint8_t SmallFont sal gebruik; // Stel die penne op die regte lettertipes vir u ontwikkelingsskerm // ------------------ ------------------------------------------ // 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 -skild vir Arduino Mega:, 38, 39, 40, 41 // // Onthou om die modelparameter te verander om by u vertoonmodule te pas! UTFT myGLCD (ITDB32S, A5, A4, A3, A2); eksterne ongetekende int -inligting [0x400]; eksterne ongetekende int -ikoon [0x400]; eksterne ongetekende int tux [0x400]; ongeldige opstelling () {myGLCD. InitLCD (); myGLCD.setFont (SmallFont); } leemte -lus () {myGLCD.fillScr (255, 255, 255); myGLCD.setColor (255, 255, 255); myGLCD.print ("*** 'n 10 by 7 rooster van 'n 32x32 ikoon ***", CENTRE, 228); vir (int x = 0; x <10; x ++) vir (int y = 0; y <7; y ++) myGLCD.drawBitmap (x*32, y*32, 32, 32, info); vertraging (5000); myGLCD.fillScr (255, 255, 255); myGLCD.setColor (255, 255, 255); myGLCD.print ("Twee verskillende ikone in skaal 1 tot 4", CENTRE, 228); int x = 0; vir (int s = 0; s0; s--) {myGLCD.drawBitmap (x, 224- (s*32), 32, 32, ikoon, s); x+= (s*32); } vertraging (5000); }

Stap 8: Knoppie -koppelvlak

Knoppie -koppelvlak
Knoppie -koppelvlak

#include #include // Initialize display // ------------------ // Stel die penne in die korrekte penne vir u ontwikkelingsbord // ------- -------------------------------------------------- - // Standard Arduino Uno/2009 Shield:, 19, 18, 17, 16 // Standard Arduino Mega/Due shield:, 38, 39, 40, 41 // CTE TFT LCD/SD Shield for Arduino Due:, 25, 26, 27, 28 // Teensy 3.x TFT -toetsbord:, 23, 22, 3, 4 // ElecHouse TFT LCD/SD -skild vir Arduino Due:, 22, 23, 31, 33 // // Onthou om verander die modelparameter om by u vertoonmodule te pas! UTFT myGLCD (ITDB32S, 38, 39, 40, 41); // Initialiseer raakskerm // ---------------------- // Stel die penne in die regte dié vir u ontwikkelingsbord // ------------------------------------------- ---------------- // Standard Arduino Uno/2009 Shield: 15, 10, 14, 9, 8 // Standard Arduino Mega/Due shield: 6, 5, 4, 3, 2 // CTE TFT LCD/SD -skild vir Arduino Due: 6, 5, 4, 3, 2 // Teensy 3.x TFT -toetsbord: 26, 31, 27, 28, 29 // ElecHouse TFT LCD/SD Shield vir Arduino Due: 25, 26, 27, 29, 30 // URTouch myTouch (6, 5, 4, 3, 2); // Gee aan watter lettertipes ons eksterne uint8_t BigFont ; int x, y; char stCurrent [20] = ""; int stCurrentLen = 0; char stLast [20] = "";/************************* ** Pasgemaakte funksies ** ********* *****************/void drawButtons () {// Teken die boonste ry knoppies vir (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); } // Teken die middelste ry knoppies vir (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); as (x <4) myGLCD.printNumI (x+6, 27+ (x*60), 87); } myGLCD.print ("0", 267, 87); // Teken die onderste ry knoppies 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) {vir (x = 0; x

Stap 9: Flappy Bird

Flappy Bird
Flappy Bird

#include #include #include // ==== Objects UTFT myGLCD (SSD1289, 38, 39, 40, 41) skep; // Parameters moet aangepas word by u Display/Schield -model UTouch myTouch (6, 5, 4, 3, 2); // ==== Definiëring van lettertipes extern uint8_t SmallFont ; eksterne uint8_t BigFont ; ekstern uint8_t SevenSegNumFont ; eksterne ongetekende int bird01 [0x41A]; // Voël Bitmapint x, y; // Veranderlikes vir die koördinate waar die vertoning ingedruk is // Floppy Bird int xP = 319; int yP = 100; int yB = 50; int movingRate = 3; int fallRateInt = 0; float fallRate = 0; int telling = 0; int lastSpeedUpScore = 0; int hoogste telling; boolean screenPressed = false; boolean gameStarted = false; leemte -opstelling () {// Begin vertoning myGLCD. InitLCD (); myGLCD.clrScr (); myTouch. InitTouch (); myTouch.setPrecision (PREC_MEDIUM); hoogste telling = EEPROM.read (0); // Lees die hoogste telling van die EEPROM initiateGame (); // Begin die spel} leemte-lus () {xP = xP-movingRate; // xP - x koördinaat van die pilare; reeks: 319 - (-51) drawPilars (xP, yP); // Teken die pilare // yB - y koördinaat van die voël wat afhang van die waarde van die veranderende fallRate yB+= fallRateInt; fallRate = fallRate+0.4; // Elke invoer styg die daling, sodat ons die effek van versnelling/ swaartekrag kan inslaan fallRateInt = int (fallRate); // Kontroleer op botsing as (yB> = 180 || yB <= 0) {// bo en onder gameOver (); } as ((xP = 5) && (yB <= yP-2)) {// boonste pilaar gameOver (); } as ((xP = 5) && (yB> = yP+60)) {// onderste pilaar gameOver (); } // Teken die voël drawBird (yB); // Nadat die pilaar deur die skerm gegaan het as (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); } anders as (x hoogste telling) {hoogste telling = telling; EEPROM.write (0, hoogste telling); } // Stel die veranderlikes terug om posisiewaardes te begin xP = 319; yB = 50; valkoers = 0; telling = 0; lastSpeedUpScore = 0; bewegende koers = 3; gameStarted = vals; // Herbegin spel initiateGame (); }

Stap 10: Werk van die projek

U kan die bronkode vind in my Github -bewaarplek.

Skakel:

Duim vas as dit jou werklik gehelp het en volg my kanaal vir interessante projekte:)

Deel hierdie video as u wil.

Gelukkig dat u ingeteken is:

Dankie vir die lees!

Aanbeveel: