กลับไปหน้ารวมไฟล์
lcd-animation-and-gaming-a6984d.md

วิศวกรรมภาพ: LCD Side Scroller

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

stock_counter_lcd_setup_1772706693516.png

การสร้างกราฟิกสไปรต์แบบกำหนดเอง

ตัวควบคุม LCD อนุญาตให้คุณกำหนดตัวละครแบบกำหนดเองได้ 8 ตัว ซึ่งจัดเก็บไว้ใน CGRAM ของมัน

  1. คุณใช้เครื่องมือตาราง 5x8 พิกเซลเพื่อวาดสไปรต์ของคุณ
    • ตัวละครไดโนเสาร์ตัวเล็กๆ ที่กำลังยืน
    • ตัวละครไดโนเสาร์ตัวเล็กๆ ที่กำลังกระโดด (ยกขาขึ้น!)
    • อุปสรรคที่เป็นต้นกระบองเพชร
  2. ตารางจะถูกแปลงเป็นอาร์เรย์: byte dinoJumping[8] = { 0b00111, 0b00111... };
  3. คุณสั่งการไลบรารี: lcd.createChar(0, dinoJumping); ตอนนี้ เมื่อใดก็ตามที่คุณสั่งให้พิมพ์ character(0) หน้าจอจะวาดไดโนเสาร์กระโดดขึ้นมาทันที!

ลูปการตรวจจับการชนและการเรนเดอร์เฟรม

นี่ไม่ใช่ภาพยนตร์ที่เล่นวนซ้ำ ผู้ใช้กำลังเล่นเกมผ่าน Arcade Push Button ขนาดใหญ่!

  1. ลูปเกม: ตัวแปรจำนวนเต็ม obstaclePos = 15; (ขอบด้านขวาของหน้าจอ)
  2. ทุกๆ 200 มิลลิวินาที obstaclePos-- ต้นกระบองเพชรจะ "เลื่อน" ไปทางซ้ายทีละบล็อก Arduino จะต้อง lcd.clear() อย่างหนักหน่วงและวาดทุกอย่างในตำแหน่งใหม่ทันทีเพื่อสร้างอนิเมชันที่ราบรื่น!
  3. การกระโดด: ผู้ใช้กด Arcade button อย่างรวดเร็ว Arduino จะย้ายสไปรต์ไดโนเสาร์จาก Row 2 ขึ้นไปที่ Row 1 ทันที
  4. การตรวจจับการชน: 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

ข้อมูล Frontmatter ดั้งเดิม

title: "LCD Animation and Gaming"
description: "8-bit graphics! Construct your own classic side-scrolling 'Jumping Dinosaur' game by generating massive arrays of custom binary characters directly onto an I2C 16x2 Text display."
category: "Games & Toys"
difficulty: "Advanced"