สารบัญ:

LCD Invaders: Space Invaders Like Game บนจอแสดงผล LCD ขนาด 16x2: 7 ขั้นตอน
LCD Invaders: Space Invaders Like Game บนจอแสดงผล LCD ขนาด 16x2: 7 ขั้นตอน

วีดีโอ: LCD Invaders: Space Invaders Like Game บนจอแสดงผล LCD ขนาด 16x2: 7 ขั้นตอน

วีดีโอ: LCD Invaders: Space Invaders Like Game บนจอแสดงผล LCD ขนาด 16x2: 7 ขั้นตอน
วีดีโอ: Arduino Star Wars Game (Space Invaders) - How To Make 2024, พฤศจิกายน
Anonim
LCD Invaders: Space Invaders Like Game บนจอแสดงผล LCD ขนาด 16x2
LCD Invaders: Space Invaders Like Game บนจอแสดงผล LCD ขนาด 16x2
LCD Invaders: Space Invaders Like Game บนจอแสดงผล LCD ขนาด 16x2
LCD Invaders: Space Invaders Like Game บนจอแสดงผล LCD ขนาด 16x2
LCD Invaders: Space Invaders Like Game บนจอแสดงผล LCD ขนาด 16x2
LCD Invaders: Space Invaders Like Game บนจอแสดงผล LCD ขนาด 16x2
LCD Invaders: Space Invaders Like Game บนจอแสดงผล LCD ขนาด 16x2
LCD Invaders: Space Invaders Like Game บนจอแสดงผล LCD ขนาด 16x2

ไม่จำเป็นต้องแนะนำเกม "Space Invaders" ในตำนาน คุณลักษณะที่น่าสนใจที่สุดของโครงการนี้คือการใช้การแสดงข้อความสำหรับการแสดงผลแบบกราฟิก ทำได้โดยใช้อักขระที่กำหนดเอง 8 ตัว

คุณสามารถดาวน์โหลดร่าง Arduino ฉบับสมบูรณ์ได้ที่นี่:

github.com/arduinocelentano/LCD_invaders/

เสบียง

บอร์ด Arduino UNO

แผงปุ่มกด LCD

สาย USB สำหรับการอัพโหลดภาพร่าง

ขั้นตอนที่ 1: การออกแบบเกม

การออกแบบเกม
การออกแบบเกม

หน้าจอไม่อนุญาตให้ควบคุมพิกเซลที่แยกจากกันและมีข้อความเพียงสองบรรทัดซึ่งไม่เพียงพอสำหรับเกม แต่อนุญาตให้ใช้อักขระที่กำหนดเองได้สูงสุด 8 ตัว เคล็ดลับคือการประมวลผลอักขระ 5x8 พิกเซลแต่ละตัวเป็นเซลล์เกม 5x4 พิกเซลสองเซลล์ กล่าวคือ เราจะมีสนามเกมขนาด 16x4 ซึ่งสมเหตุสมผล ตัวละคร 8 ตัวก็เพียงพอแล้วที่จะใช้สไปรท์สำหรับยานอวกาศ กระสุน และเอเลี่ยนที่เคลื่อนไหวได้ของผู้เล่น เนื่องจากสไปรท์มีขนาด 5x4 และอักขระมีขนาด 5x8 เราจึงต้องการอักขระบางตัวที่มีสไปรท์สองตัว เช่น สไปรท์ "ยานอวกาศและกระสุน" "เอเลี่ยนและสไปรท์สัญลักษณ์แสดงหัวข้อย่อย" เป็นต้น อักขระที่กำหนดเองทั้งหมดจะแสดงบนรูปภาพ

ขั้นตอนที่ 2: ประมวลผลปุ่ม

ปุ่มประมวลผล
ปุ่มประมวลผล

โดยปกติ ปุ่มทั้งหมดบนแผงป้องกัน LCD จะเชื่อมต่อกับพินอะนาล็อกเดียวกัน มีแผงป้องกัน LCD หลายเวอร์ชัน ดังนั้นคุณอาจต้องเปลี่ยนตัวอักษรจำนวนเต็มเล็กน้อยในโค้ดประมวลผลปุ่มของฉัน

ขั้นตอนที่ 3: ลำดับชั้นของคลาส

ลำดับชั้นของชั้นเรียน
ลำดับชั้นของชั้นเรียน

ฉันได้ใช้ GameObject คลาสพื้นฐานซึ่งมีพิกัดและฟิลด์ความเร็วและการชนกันของกระบวนการ Classes Ship, Alien และ Bullet นั้นสืบทอดมาจากมัน

ขั้นตอนที่ 4: การอัปเดตหน้าจอ

กำลังอัปเดตหน้าจอ
กำลังอัปเดตหน้าจอ

ตรรกะการแสดงผลอาจดูค่อนข้างซับซ้อน เนื่องจากเราต้องเปลี่ยนตรรกะของเกมขนาด 16x4 เป็นจอแสดงผลขนาด 16x2 โปรดอ่านความคิดเห็นในรหัสสำหรับการอ้างอิงเพิ่มเติม เพื่อหลีกเลี่ยงการกะพริบ ฉันใช้อาร์เรย์ถ่านสองมิติเป็นบัฟเฟอร์ข้อความ อนุญาตให้ใช้การดำเนินการพิมพ์สองสามรายการ (หนึ่งรายการสำหรับแต่ละบรรทัด) เพื่ออัปเดตหน้าจอ

ขั้นตอนที่ 5: ตรรกะของเกม

ตรรกะของเกม
ตรรกะของเกม

นี่คือหัวใจของเกม ลูปหลักจะเปลี่ยนพิกัดของวัตถุทั้งหมด ตรวจสอบการชนกันและเหตุการณ์การกดปุ่มทุกประเภท ความเร็วของเอเลี่ยนและความน่าจะเป็นในการยิงเพิ่มขึ้นจากระดับหนึ่งไปอีกระดับ แต่รางวัลคะแนนก็เพิ่มขึ้นเช่นกัน

ขั้นตอนที่ 6: ไข่อีสเตอร์

ไข่อีสเตอร์
ไข่อีสเตอร์

ไม่มีระดับหลังจากระดับ 42 อย่างจริงจัง เป็นระดับสูงสุดของชีวิต จักรวาล และทุกสิ่ง:)

แนะนำ: