สารบัญ:

ฟลอปปี้เบิร์ด: 3 ขั้นตอน
ฟลอปปี้เบิร์ด: 3 ขั้นตอน

วีดีโอ: ฟลอปปี้เบิร์ด: 3 ขั้นตอน

วีดีโอ: ฟลอปปี้เบิร์ด: 3 ขั้นตอน
วีดีโอ: Scratch 3 0 การสร้างเกม Flappy Bird 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 เชื่อมต่ออย่างถูกต้องและพร้อมที่จะเปิดเครื่อง เสียบ Arduino เพื่อดูว่าคุณได้เชื่อมต่อ LCD อย่างถูกต้องหรือไม่ หาก LCD เปิดขึ้นและหน้าจอเป็นสีขาว ยินดีด้วย คุณเชื่อมต่อ TFT LCD สำเร็จแล้ว และตอนนี้ก็พร้อมที่จะตั้งโปรแกรมแล้ว สุดท้ายนี้ เรามีสิ่งที่ต้องทำอย่างหนึ่งคือ เชื่อมต่อการ์ด SD ในจอ LCD ที่ด้านหลังของ TFT LCD มีช่องเสียบการ์ด SD ซึ่งคุณสามารถเสียบการ์ด SD ได้ ดังนั้นเพียงแค่เสียบปลั๊กก็เสร็จเรียบร้อย

ขั้นตอนที่ 2: ตั้งโปรแกรม TFT LCD

การเขียนโปรแกรม TFT LCD
การเขียนโปรแกรม TFT LCD

ตอนนี้เราจะตั้งโปรแกรม LCD เพื่อให้เล่นเกมและเล่นได้ ด้านล่างนี้คือโค้ดที่คุณต้องคอมไพล์และอัปโหลดโดยใช้ Arduino IDE

ปัญหาที่คุณอาจมี:

เปลี่ยนพารามิเตอร์ของ TFT LCD ตามรุ่นที่คุณมี

กรอกรหัส:

#รวม #รวม #รวม

//==== การสร้างวัตถุ

UTFT myGLCD (ILI9341_16, 38, 39, 40, 41); //ควรปรับพารามิเตอร์ตามรุ่น Display/Shield URTouch myTouch(6, 5, 4, 3, 2);

//==== การกำหนดแบบอักษร

extern uint8_t SmallFont; ภายนอก uint8_t BigFont; extern uint8_t SevenSegNumFont;

ภายนอก unsigned int bird01[0x41A]; // บิตแมปนก

int x, y; // ตัวแปรสำหรับพิกัดที่กดจอแสดงผล

// ฟลอปปี้เบิร์ด

int xP = 319; int yP = 100; int yB = 50; int movingRate = 3; int fallRateInt = 0; ลอย fallRate = 0; คะแนน int = 0; int lastSpeedUpScore = 0; int คะแนนสูงสุด; บูลีน screenPressed = false; เกมบูลีนเริ่ม = false;

การตั้งค่าเป็นโมฆะ () {

// เริ่มการแสดง myGLCD. InitLCD(); myGLCD.clrScr(); myTouch. InitTouch(); myTouch.setPrecision(PREC_MEDIUM); คะแนนสูงสุด = EEPROM.read(0); // อ่านคะแนนสูงสุดจาก EEPROM beginGame(); // เริ่มเกม }

วงเป็นโมฆะ () {

xP=xP-อัตราการเคลื่อนที่; // xP - x พิกัดของเสา; ช่วง: 319 - (-51) drawPilars(xP, yP); // ดึงเสา // yB - y พิกัดของนกซึ่งขึ้นอยู่กับค่าของตัวแปร FallRate yB+=fallRateInt; fallRate=ตกอัตรา+0.4; // inetration แต่ละครั้งอัตราการล้มจะเพิ่มขึ้นเพื่อให้เราสามารถผลของการเร่งความเร็ว/ แรงโน้มถ่วง fallRateInt= int(fallRate); // ตรวจสอบการชนกัน if(yB>=180 || yB<=0){ // top and bottom gameOver(); } if((xP=5) && (yB<=yP-2))){ // เสาบน gameOver(); } if((xP=5) && (yB>=yP+60)){ // เสาล่าง gameOver(); } // วาดนก 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); } else 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() - ฟังก์ชั่นกำหนดเอง

เป็นโมฆะ drawBird (int y) {// วาดนก - บิตแมป 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 () - ฟังก์ชั่นที่กำหนดเองเป็นโมฆะ gameOver () { ล่าช้า (3000); // 1 วินาที // ล้างหน้าจอและพิมพ์ข้อความ myGLCD.clrScr(); myGLCD.setColor(255, 255, 255); myGLCD.setBackColor(0, 0, 0); myGLCD.setFont(BigFont); myGLCD.print("จบเกม", CENTER, 40); myGLCD.print("คะแนน:", 100, 80); myGLCD.printNumI (คะแนน, 200, 80); myGLCD.print("กำลังเริ่มต้นใหม่…", CENTER, 120); myGLCD.setFont (SevenSegNumFont); myGLCD.printNumI(2, CENTER, 150); ล่าช้า (1000); myGLCD.printNumI (1, CENTER, 150); ล่าช้า (1000); // เขียนคะแนนสูงสุดใน EEPROM ถ้า (คะแนน > คะแนนสูงสุด) { คะแนนสูงสุด = คะแนน; EEPROM.write(0,คะแนนสูงสุด); } // รีเซ็ตตัวแปรเพื่อเริ่มต้นค่าตำแหน่ง xP=319; yB=50; อัตราการตก = 0; คะแนน = 0; LastSpeedUpScore = 0; อัตราการเคลื่อนที่ = 3; gameStarted = เท็จ; // เริ่มเกมใหม่เริ่มต้นเกม (); }

ขั้นตอนที่ 3: เสร็จแล้ว

เสร็จแล้ว!
เสร็จแล้ว!

เราได้สร้างวงจรและคอมไพล์โค้ดแล้ว ตอนนี้เราแค่ต้องเสียบ Arduino mega แล้วเล่นเกม

ที่นี่ ฉันมีลิงก์ไปยังวิดีโอที่แสดงให้เห็นว่าเกมนี้ทำงานอย่างไรและต้องทำอย่างไรเพื่อตั้งค่า:

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

แจ้งให้เราทราบหากคุณมีปัญหาใด ๆ ด้านล่าง

แนะนำ: