สารบัญ:

Tap Tap Rainbow - เกมตอบสนองอย่างรวดเร็วสำหรับผู้เล่น 2 คน: 4 ขั้นตอน (พร้อมรูปภาพ)
Tap Tap Rainbow - เกมตอบสนองอย่างรวดเร็วสำหรับผู้เล่น 2 คน: 4 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Tap Tap Rainbow - เกมตอบสนองอย่างรวดเร็วสำหรับผู้เล่น 2 คน: 4 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Tap Tap Rainbow - เกมตอบสนองอย่างรวดเร็วสำหรับผู้เล่น 2 คน: 4 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: วันที่ Roblox ไม่มีคนเล่น 2024, ธันวาคม
Anonim
Tap Tap Rainbow - เกมตอบสนองอย่างรวดเร็วสำหรับผู้เล่น 2 คน
Tap Tap Rainbow - เกมตอบสนองอย่างรวดเร็วสำหรับผู้เล่น 2 คน
Tap Tap Rainbow - เกมตอบสนองอย่างรวดเร็วสำหรับผู้เล่น 2 คน
Tap Tap Rainbow - เกมตอบสนองอย่างรวดเร็วสำหรับผู้เล่น 2 คน
Tap Tap Rainbow - เกมตอบสนองอย่างรวดเร็วสำหรับผู้เล่น 2 คน
Tap Tap Rainbow - เกมตอบสนองอย่างรวดเร็วสำหรับผู้เล่น 2 คน

สายไฟ LED ใช้เพียง 3 สาย ดังนั้นฉันต้องการไฟ 5V (สีแดง) กราวด์ (สีขาว) และสัญญาณ (สีเขียว) เท่านั้น หากคุณใช้ Espruino อย่าลืมตรวจสอบบทแนะนำบนเว็บไซต์ของพวกเขา หนึ่งสำหรับไฟ LED RGB มีการอธิบายอย่างชัดเจนมาก

ฉันได้ตัดสาย LED ออกเป็น 3 ส่วนจาก 6 LEDs แล้วเชื่อมต่อเข้าด้วยกันด้วยสายพิเศษ ด้วยวิธีนี้ ไฟ LED ทั้งหมดใช้อาร์เรย์เดียวกัน ซึ่งช่วยฉันประหยัดพอร์ตพิเศษ 2 พอร์ตบนบอร์ดและตั้งโปรแกรมได้ง่ายขึ้น

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

ในที่สุดฉันก็พบบทช่วยสอนเกี่ยวกับ Espruino สำหรับปุ่มกดซึ่งมีสายเป็นเมทริกซ์ปุ่มกดพร้อมปุ่ม 16 ปุ่ม สิ่งนี้ดูค่อนข้างง่ายในการใช้งานดังนั้นฉันจึงไปทางนั้น ฉันต้องการเพียง 12 ปุ่มเท่านั้น ดังนั้นฉันต้องการเมทริกซ์ 3x4

ในเมทริกซ์ปุ่มกด ปุ่มทั้งหมดถูกต่อเข้ากับคอลัมน์และแถว วิธีนี้คุณต้องการเพียง 8 พอร์ตสำหรับ 16 ปุ่มเท่านั้น ในการตั้งค่าของฉัน ฉันต้องการเพียง 2 คูณ 6 ปุ่มเท่านั้น ดังนั้นนั่นคือทั้งหมด 7 พอร์ตบนบอร์ด (4 แถว 3 คอลัมน์) มันยังน้อยกว่ามากเมื่อเชื่อมต่อปุ่ม 12 ปุ่มแยกกัน และโมดูลปุ่มกดของ Espruino นั้นใช้งานง่ายมาก

ฉันพบบทช่วยสอนที่ดีเกี่ยวกับปุ่มกดเกี่ยวกับพื้นฐานวงจรที่ช่วยฉันได้มากในการเดินสายของปุ่มต่างๆ

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

ขั้นตอนที่ 3: การเขียนโค้ด

การเขียนโค้ด
การเขียนโค้ด
การเขียนโค้ด
การเขียนโค้ด
การเขียนโค้ด
การเขียนโค้ด

Espruino ถูกตั้งโปรแกรมใน Javascript ดังนั้นสำหรับฉันแล้วมันซับซ้อนน้อยกว่ามากเมื่อเขียนโค้ดสำหรับ Arduino

รหัสสามารถใช้การเพิ่มประสิทธิภาพบางอย่างได้ แต่ตอนนี้ใช้งานได้ นอกจากนี้ยังมีข้อบกพร่อง (อาจเป็นคุณลักษณะ:D) ซึ่งคุณไม่สามารถกดปุ่ม 2 ปุ่มพร้อมกันได้ แต่มันทำให้การเล่นเกมมีความท้าทายมากขึ้น (อ่านแล้วหงุดหงิด) ดังนั้นฉันจึงยังไม่ได้ตรวจสอบปัญหา ฉันชอบวิธีนี้

การเขียนโปรแกรม LED นั้นค่อนข้างง่าย LED ทุกดวงในสตริงมี 3 ค่าในอาร์เรย์ ดังนั้นหากคุณมีอาร์เรย์เช่น [255, 0, 0, 255, 0, 0] แสดงว่าคุณมีไฟ LED 2 ดวงแรกเป็นสีแดง

ในภาพรวมอย่างรวดเร็ว

1. ขั้นแรก ฉันกำหนดสีของฉันและสร้างอาร์เรย์ของสีทั้งหมด

2. จากนั้นฉันกำหนดการตั้งค่าเครื่องเล่น เช่น รหัสปุ่มและดัชนีที่ผู้เล่นแต่ละคนมีในสตริง LED

3. เมื่อเริ่มเกม ฉันสลับสีทั้งหมดในอาร์เรย์สีรุ้งและจัดเก็บข้อมูลนั้นไว้ในอาร์เรย์ใหม่ จากนั้นฉันก็รีเซ็ต LED ทั้งหมดและเปิดไฟ LED ด้านบนด้วยสีรุ้งที่สับเปลี่ยน

4. ในที่สุด เราก็มีโค้ดที่คอยฟังเหตุการณ์สำคัญ ฉันเก็บอินพุตทั้งหมดไว้ในอาร์เรย์และตรวจสอบว่าอาร์เรย์นี้อยู่ในลำดับที่ถูกต้องหรือไม่

5. ความพิเศษที่ฉันเพิ่มเมื่อวานนี้คือผู้ชนะจะได้รับแอนิเมชั่นสายรุ้งที่ยอดเยี่ยม: D

ยังมีอีกหลายสิ่งที่ฉันคิดเพื่อให้มันสนุกมากขึ้น แต่นั่นก็เป็นเรื่องสำหรับภายหลัง;)

ฉันไม่สามารถอัปโหลดซอร์สโค้ดแบบเต็มได้ ดังนั้นฉันจึงวางไว้บน Gitlab

gitlab.com/marzsman/tap_tap_rainbow

ขั้นตอนที่ 4: ขอให้สนุกกับมัน !!! ?

Image
Image
สนุกไปกับมัน!!! ?
สนุกไปกับมัน!!! ?

ตอนที่ฉันกับลูกสาวเขียนไอเดียของเธอและคิดว่าควรเป็นอย่างไร ฉันก็ชอบไอเดียนั้นทันที แต่ฉันต้องบอกว่าฉันไม่เคยคิดว่ามันจะสนุกมากที่จะเล่น เรามีการต่อสู้ปาดสายรุ้งครั้งใหญ่แล้ว:D

ฉันหวังว่าทุกคนจะสนุกกับมันมากที่สุดเท่าที่เรามี

นอกจากนี้ยังเป็นโครงการเต็มรูปแบบครั้งแรกที่ฉันทำในระยะเวลาอันสั้นและเป็นสิ่งที่ทำกับลูกสาววัย 8 ขวบของฉัน และยังเป็นโครงการแรกที่ฉันได้สอน (ในที่สุด!) ใช่แล้ว มันเป็นโครงการที่พิเศษมากสำหรับฉัน ดังนั้นฉันหวังว่าจะชอบมัน!

หากคุณมีคำถามหรือข้อเสนอแนะใด ๆ เรายินดีที่จะรับฟัง!

แนะนำ: