Агуулгын хүснэгт:

Уян шувуу: 3 алхам
Уян шувуу: 3 алхам

Видео: Уян шувуу: 3 алхам

Видео: Уян шувуу: 3 алхам
Видео: BreadBarbershop1 | Цайны Мастер | Mongolian Dubbing 2024, Арваннэгдүгээр
Anonim
Уян хатан шувуу
Уян хатан шувуу
Уян шувуу
Уян шувуу

Өнөөдөр бид TFT LCD ашиглан тоглоом хийх болно. Энэ нь үнэхээр алдартай тоглоом шиг харагдах болно, олон хүмүүс энэ тоглоомыг тоглосоор байна. Тоглоомыг Flappy Bird гэж нэрлэдэг боловч энэ тоглоом нь арай өөр юм, учир нь UI нь тоглоомын арга барилаас гадна өөр өөр байдаг. Зохиогчийн эрхийн асуудалд хүргэж болзошгүй тул би энэ тоглоомыг Floppy Bird гэж нэрлэсэн. Гэсэн хэдий ч энэ бол үнэхээр хөгжилтэй тоглоом бөгөөд үүнийг хийхэд хялбар байдаг. Тоглоомыг бүрэн гүйцэд болгож, миний хийсэн шиг ажиллуулах боломжийг танд олгох энэхүү зааварчилгааг би хийсэн. Хэрэв танд ямар нэгэн асуулт байвал доор тайлбар бичээрэй, би эдгээр асуултуудад аль болох хурдан хариулахыг хичээх болно.

Хангамж

- Arduino Mega 2560 ба кабель

- Arduino Mega Shield

- Arduino TFT LCD нь Arduino Mega 2560 -тай нийцдэг

- SD карт

Алхам 1: TFT LCD угсрах

TFT LCD угсрах
TFT LCD угсрах

Одоо бид TFT LCD угсрах ажлыг эхлүүлж болно. Бид TFT LCD -ийг бамбай руу холбох тул эхлээд TFT LCD -ийг аваад бамбай дээрх тээглүүртэй нь зэрэгцүүлээрэй. Зүүг тэгшлэсний дараа TFT LCD -ийг доош нь дарж байрлуулна уу. Бүх зүү толгойнууд нь бамбай дотор байгаа бөгөөд та тээглүүрийн толгойг харахгүй бол TFT LCD -ийг зөв холбосон гэдгийг мэдэж болно. Дараа нь бид бамбайгаа Arduino Mega 2560 руу залгаж болно. Arduino Mega дээрх бамбайны зүүг тэгшлээд залгаарай. Бүх зүү толгойнууд Arduino Mega дотор байгаа бөгөөд та зүү толгойг харахгүй бол энэ нь Хэрэв та TFT LCD -ийг зөв холбосон бөгөөд асаахад бэлэн болсныг мэдэх болно. LCD дэлгэцээ зөв холбосон эсэхээ шалгахын тулд Arduino -г залгаарай, хэрэв LCD асаж, дэлгэц нь цагаан өнгөтэй байвал баяр хүргэе, та TFT LCD -ийг амжилттай холбосон бөгөөд одоо програмчлахад бэлэн боллоо. Эцэст нь хэлэхэд бидэнд хийх ёстой нэг зүйл бол SD картыг LCD дэлгэц дээр холбох явдал юм. TFT LCD -ийн ар талд SD картны үүр байдаг бөгөөд та зүгээр л SD картаа залгаж болно. Тиймээс зүгээр л залгаарай, тэгээд л боллоо.

Алхам 2: TFT LCD дэлгэцийг програмчлах

TFT LCD дэлгэцийг програмчлах
TFT LCD дэлгэцийг програмчлах

Одоо бид LCD дэлгэцийг програмчлах бөгөөд ингэснээр тоглоомыг ажиллуулж, бид үүнийг тоглуулж чадна. Ардуино IDE ашиглан хөрвүүлэх, байршуулах кодыг доор харуулав.

Танд тулгарч болзошгүй бэрхшээлүүд:

TFT LCD -ийн параметрүүдийг өөрт байгаа загварын дагуу өөрчилнө үү.

БҮРЭН КОД:

#оруулах #оруулах #оруулах

// ==== Объект үүсгэх

UTFT myGLCD (ILI9341_16, 38, 39, 40, 41); // Параметрүүдийг таны Display/Shield загварт тохируулах ёстой URTouch myTouch (6, 5, 4, 3, 2);

// ==== Фонтыг тодорхойлох

extern uint8_t SmallFont ; extern uint8_t BigFont ; extern uint8_t SevenSegNumFont ;

extern unsigned int bird01 [0x41A]; // Шувууны Bitmap

int x, y; // Дэлгэц дарагдсан координатын хувьсагчууд

// Уян хатан шувуу

int xP = 319; int yP = 100; int yB = 50; int moveRate = 3; int fallRateInt = 0; float fallRate = 0; int оноо = 0; int lastSpeedUpScore = 0; int дээд оноо; boolean screenPressed = худал; boolean gameStarted = худал;

хүчингүй тохиргоо () {

// myGLCD. InitLCD () дэлгэцийг эхлүүлэх; myGLCD.clrScr (); myTouch. InitTouch (); myTouch.setPrecision (PREC_MEDIUM); дээд оноо = EEPROM.read (0); // EEPROM inititeGame () -ээс хамгийн өндөр оноог уншина уу; // Тоглоом эхлүүлэх}

void loop () {

xP = xP-moveRate; // xP - x pilars -ийн координат; хүрээ: 319 - (-51) drawPilars (xP, yP); // Шувууны баганыг // yB - y координатыг зурж байгаа бөгөөд энэ нь унаж буй хурдны хувьсагчийн үнэ цэнээс хамаарна yB+= fallRateInt; fallRate = fallRate+0.4; // Оролт бүр уналтын хурд нэмэгдэх бөгөөд ингэснээр хурдатгал/ хүндийн хүчний нөлөөг авч болно fallRateInt = int (fallRate); // (yB> = 180 || yB <= 0) {// дээд ба доод gameOver (); } if ((xP = 5) && (yB <= yP-2)) {// дээд тулгуур тоглоомOver (); } if ((xP = 5) && (yB> = yP+60)) {// доод тулгуур тоглоомOver (); } // Шувууг зурдаг drawBird (yB);

// Баганыг дэлгэцээр дамжуулсны дараа

хэрэв (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); } if if (x <= 268) {// myGLCD.setColor баганын баруун талд цэнхэр тэгш өнцөгт зурна (114, 198, 206); myGLCD.fillRect (x+51, 0, x+60, y); // баганыг зурдаг myGLCD.setColor (0, 200, 20); myGLCD.fillRect (x+49, 1, x+1, y-1); // Баганы хар хүрээг зурна myGLCD.setColor (0, 0, 0); myGLCD.drawRect (x+50, 0, x, y); // myGLCD.setColor (114, 198, 206) баганы зүүн талд цэнхэр тэгш өнцөгт зурна; myGLCD.fillRect (x-1, 0, x-3, y);

// Доод багана

myGLCD.setColor (114, 198, 206); myGLCD.fillRect (x+51, y+80, x+60, 204); myGLCD.setColor (0, 200, 20); myGLCD.fillRect (x+49, y+81, x+1, 203); myGLCD.setColor (0, 0, 0); myGLCD.drawRect (x+50, y+80, x, 204); myGLCD.setColor (114, 198, 206); myGLCD.fillRect (x-1, y+80, x-3, 204); } // myGLCD.setColor (0, 0, 0) оноог зурна; myGLCD.setBackColor (221, 216, 148); myGLCD.setFont (BigFont); myGLCD.printNumI (оноо, 100, 220); }

// ====== drawBird () - Тусгай функц

void drawBird (int y) {// Шувууг зурдаг - bitMap myGLCD.drawBitmap (50, y, 35, 30, bird01); // myGLCD.setColor (114, 198, 206) төлөв байдлыг арилгахын тулд шувууны дээр ба доор цэнхэр тэгш өнцөгт зурдаг; myGLCD.fillRoundRect (50, y, 85, y-6); myGLCD.fillRoundRect (50, y+30, 85, y+36); } // ======== gameOver () - Custom Function void gameOver () {delay (3000); // 1 секунд // Дэлгэцийг цэвэрлэж, myGLCD.clrScr () текстийг хэвлэнэ; myGLCD.setColor (255, 255, 255); myGLCD.setBackColor (0, 0, 0); myGLCD.setFont (BigFont); myGLCD.print ("GAME OVER", CENTER, 40); myGLCD.print ("Оноо:", 100, 80); myGLCD.printNumI (оноо, 200, 80); myGLCD.print ("Дахин эхлүүлж байна …", ТӨВ, 120); myGLCD.setFont (SevenSegNumFont); myGLCD.printNumI (2, ТӨВ, 150); саатал (1000); myGLCD.printNumI (1, ТӨВ, 150); саатал (1000); // EEPROM -ийн хамгийн өндөр оноог бичдэг бол (оноо> хамгийн өндөр оноо) {хамгийн өндөр оноо = оноо; EEPROM.write (0, хамгийн өндөр оноо); } // Хувьсагчдыг байрлалын утгыг эхлүүлэхийн тулд дахин тохируулна xP = 319; yB = 50; fallRate = 0; оноо = 0; lastSpeedUpScore = 0; moveRate = 3; gameStarted = худал; // Тоглоом эхлүүлэхGameiteGame (); }

Алхам 3: Боллоо

Дууссан!
Дууссан!

Бид хэлхээг хийж, кодыг эмхэтгэв. Одоо бид Arduino мега залгаж, тоглоом тоглох л үлдлээ.

Энд би энэ тоглоом хэрхэн ажилладаг, үүнийг тохируулахын тулд юу хийх ёстойг харуулсан видеоны линктэй байна.

drive.google.com/file/d/18hKQ8v2w2OkM_std-…

Хэрэв танд ямар нэгэн асуудал байгаа бол доор хэлээрэй.

Зөвлөмж болгож буй: