วิศวกรรมภาพ: LCD Side Scroller
จอ LCD แบบ 16x2 มาตรฐานถูกออกแบบมาสำหรับตัวอักษรและตัวเลขที่น่าเบื่อโดยเฉพาะ โปรเจกต์ LCD Animation and Gaming บังคับให้ไลบรารี <LiquidCrystal.h> ที่เรียบง่ายต้องทำงานอย่างหนัก โดยการลบและวาดใหม่สไปรต์ตัวละครแบบกำหนดเองทีละพิกเซลอย่างรวดเร็ว สร้างวิดีโอเกมขนาดเล็กที่เล่นได้อย่างสมบูรณ์

การสร้างกราฟิกสไปรต์แบบกำหนดเอง
ตัวควบคุม LCD อนุญาตให้คุณกำหนดตัวละครแบบกำหนดเองได้ 8 ตัว ซึ่งจัดเก็บไว้ใน CGRAM ของมัน
- คุณใช้เครื่องมือตาราง 5x8 พิกเซลเพื่อวาดสไปรต์ของคุณ
- ตัวละครไดโนเสาร์ตัวเล็กๆ ที่กำลังยืน
- ตัวละครไดโนเสาร์ตัวเล็กๆ ที่กำลังกระโดด (ยกขาขึ้น!)
- อุปสรรคที่เป็นต้นกระบองเพชร
- ตารางจะถูกแปลงเป็นอาร์เรย์:
byte dinoJumping[8] = { 0b00111, 0b00111... }; - คุณสั่งการไลบรารี:
lcd.createChar(0, dinoJumping);ตอนนี้ เมื่อใดก็ตามที่คุณสั่งให้พิมพ์character(0)หน้าจอจะวาดไดโนเสาร์กระโดดขึ้นมาทันที!
ลูปการตรวจจับการชนและการเรนเดอร์เฟรม
นี่ไม่ใช่ภาพยนตร์ที่เล่นวนซ้ำ ผู้ใช้กำลังเล่นเกมผ่าน Arcade Push Button ขนาดใหญ่!
- ลูปเกม: ตัวแปรจำนวนเต็ม
obstaclePos = 15;(ขอบด้านขวาของหน้าจอ) - ทุกๆ 200 มิลลิวินาที
obstaclePos--ต้นกระบองเพชรจะ "เลื่อน" ไปทางซ้ายทีละบล็อก Arduino จะต้องlcd.clear()อย่างหนักหน่วงและวาดทุกอย่างในตำแหน่งใหม่ทันทีเพื่อสร้างอนิเมชันที่ราบรื่น! - การกระโดด: ผู้ใช้กด Arcade button อย่างรวดเร็ว Arduino จะย้ายสไปรต์ไดโนเสาร์จาก
Row 2ขึ้นไปที่Row 1ทันที - การตรวจจับการชน:
if (dinoRow == 2 && obstaclePos == dinoColumn) { GameOverSequence(); }หากไดโนเสาร์อยู่บนแถวล่างในเวลาเดียวกันกับที่ต้นกระบองเพชรเลื่อนเข้ามาในคอลัมน์ของมัน เกมจะหยุดลงและ buzzer จะส่งเสียงแห่งความตาย!
ชิ้นส่วนที่จำเป็น
- Arduino Uno/Nano: เอนจินของเกม
- 16x2 หรือ 20x4 Text LCD พร้อม I2C Backpack
- Arcade Push Button หรือ Joypad button
- Piezo Buzzer: สำหรับเสียงประกอบการกระโดด, คะแนน และ Game Over