תוכן עניינים:
וִידֵאוֹ: NeoPixels Matrix : משחק נחש: 4 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:12
אתה עדיין זוכר את משחק הנחש ששיחקנו על קופסת המשחקים או הנייד שלנו בילדותנו? היום נלמד כיצד להכין משחק נחש עם מטריצה 8*8 NeoPixels. אנו בוחרים ב- Arduino uno כמרכז הבקרה ומודול פריצת הג'ויסטיק לשליטה על הנחש.
שלב 1: רשימת רכיבים:
חוּמרָה:
1 X Freaduino UNO Rev2.2 MB_EFUNO
1 X גמיש 64 RGB LED 8*8 מטריקס NeoPixels
1 X מודול פריצת ג'ויסטיק BKOUT_MD01
3 X קו מדריך
תוֹכנָה:
Arduino IDE
שלב 2: חיבור חומרה
חבר את NeoPixels לסיכה D2.
"X" במודול פריצת ג'ויסטיק חיבור סיכה A0 בלוח UNO של Arduino, פין חיבור "Y", סיכה A2 "K".
שלב 3: תכנות
P#כולל
#הגדר PIN 2 // סיכת פלט #הגדר MAX_LED 64 // כמות חרוז uint32_t c; int a = 0, מספר; char huan = 0, ci = 0; סימן u חתום u = 40; // גודל הגופן של קבוצת המילים לא חתום char x = 0; צבע לא חתום צבע [3]; char go ללא חתום = {2, 3, 4, 5, 9, 14, 17, 20, 22, 26, 27, 29, 34, 35, 36, 37, 41, 46, 49, 54, 58, 59, 60, 61}; // 24 נורת חרוסת לא חתומה [8] [8] = {{0, 1, 2, 3, 4, 5, 6, 7}, {15, 14, 13, 12, 11, 10, 9, 8}, {16, 17, 18, 19, 20, 21, 22, 23}, {31, 30, 29, 28, 27, 26, 25, 24}, {32, 33, 34, 35, 36, 37, 38, 39}, {47, 46, 45, 44, 43, 42, 41, 40}, {48, 49, 50, 51, 52, 53, 54, 55}, {63, 62, 61, 60, 59, 58, 57, 56},}; תו char charged [8] = // הגדר את המילה לשליחת {{0, 1, 1, 1, 1, 1, 0, 0}, {0, 1, 0, 0, 0, 1, 0, 0}, // 0 {0, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, // 1 {0, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 1, 0, 1, 1, 1, 0, 0}, {0, 1, 0, 1, 0, 1, 0, 0}, // 2 {0, 1, 1, 1, 0, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 1, 0, 1, 0, 1, 0, 0}, {0, 1, 0, 1, 0, 1, 0, 0}, // 3 {0, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0, 0}, // 4 {0, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 1, 1, 1, 0, 1, 0, 0}, {0, 1, 0, 1, 0, 1, 0, 0}, // 5 {0, 1, 0, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 1, 1, 1, 1, 1, 0, 0}, {0, 1, 0, 1, 0, 1, 0, 0}, // 6 {0, 1, 0, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 1, 0, 0, 0, 0, 0, 0}, {0, 1, 0, 0, 0, 0, 0, 0}, // 7 {0, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 1, 1, 1, 1, 1, 0, 0}, {0, 1, 0, 1, 0, 1, 0, 0}, // 8 {0, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 1, 1, 1, 0, 1, 0, 0}, {0, 1, 0, 1, 0, 1, 0, 0}, // 9 {0, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0 },}; תו מציג [8] [8]; מהירות intS = 400; // מהירות ראשונית של ציון int נחש; // ציון המשחק int xValue; // JoyStick-X int yValue; // JoyStick-Y int zValue; // JoyStick-Z int FX, FY; // מתאם מזון int SX, SY; // מתאם של ראש הנחש int KEY, K; int מופעל; // אפשר להפעיל מחדש את המשחק char sx [64]; // מתאם של גוף הנחש char sy [64]; רצועת Adafruit_NeoPixel = Adafruit_NeoPixel (MAX_LED, PIN, NEO_RGB + NEO_KHZ800); void RANDOM () {A: FX = אקראי (0, 7); FY = אקראי (0, 7); for (int i = 0; i <3+ציון; i ++) // מנע הצגת מזון על גוף הנחש {if (FX == sx && FY == sy ) הלך A; }} void myDelay (ללא זמן חתום int) {// במהלך עיכוב תנועת הנחש, עלינו לעשות משהו כמו נצנצים באוכל ולקרוא את כיוון הג'ויסטיק עבור (int t = 1; t 950 && KEY! = 5) { K = 8; } אחרת אם (yValue <50 && KEY! = 8) {K = 5; } אחרת אם (xValue 950 && KEY! = 4) {K = 6; }}} // כאן תוכל להשוות אם כיוון לוח המקשים הפוך לכיוון תנועת הנחש. אם הוא הפוך, ויתור על לוח המקשים. /********************************************* ********************************************** ********************************************** ********************************************** ********/ void gameover () {// לאחר שתוכנית Gameover הופסקה, לחץ על הכפתור המרכזי כדי להפעיל מחדש את המשחק. ערך צ'ארם לא חתום, y; צבע [0] = אקראי (3, 18); // הגדר צבע. הפרמטר הוא R G B, טווח 0-255. צבע [1] = אקראי (3, 18); צבע [2] = אקראי (3, 18); c = רצועה.צבע (צבע [1], צבע [0], צבע [2]); value = ציון / 10; ערך = ערך * 4; y = 0; עבור (מספר = ערך; מספר <ערך+4; מספר ++) {עבור (תו char vertical = 0; אנכי <8; אנכי ++) {displayscore [y] [vertical] = תו [מספר] [אנכי]; } y ++; } value = ציון % 10; ערך = ערך * 4; עבור (מספר = ערך; מספר <ערך+4; מספר ++) {עבור (תו char vertical = 0; אנכי <8; אנכי ++) {displayscore [y] [vertical] = תו [מספר] [אנכי]; } y ++; } עבור (סימנים לא חתומים אופקי = 0; אופקי <8; אופקי ++) {עבור (סימנים לא חתומים אנכיים = 0; אנכי <8; אנכי ++) {אם (מציג ציון [אופקי] [אנכי] == 1) // שופט אם האור מופעל. {strip.setPixelColor (אור [אופקי] [אנכי], ג); } else strip.setPixelColor (אור [אופקי] [אנכי], 0); }} strip.show (); // שליחת עיכוב נתונים (5000); K = 0; // אפס כיוון הג'ויסטיק sx [0] = 2; sx [1] = 1; sx [2] = 0; sy [0] = 1; sy [1] = 1; sy [2] = 1; // אפס ציון קואורדינטות נחש = 0; // אפס את מהירות ציון המשחק S = 400; // המהירות הראשונית של נחש} הגדרת חלל () {Serial.begin (9600); // אתחל את strip.begin (); // לשלוח נתונים. ברירת המחדל של הצבע של כל נקודה היא 0. כך שכל נקודה לא מוארת בהתחלה. strip.show (); K = 0; // אפס את הכיוון של ג'ויסטיק sx [0] = 2; sx [1] = 1; sx [2] = 0; sy [0] = 1; sy [1] = 1; sy [2] = 1; // אפס ציון קואורדינטות נחש = 0; // אפס ציון משחק צבע [0] = אקראי (3, 18); // הגדר צבע. הפרמטר הוא R G B, טווח 0-255. צבע [1] = אקראי (3, 18); צבע [2] = אקראי (3, 18); c = רצועה.צבע (צבע [1], צבע [0], צבע [2]); // ירוק אדום כחול // הגדר צבע עבור (מספר = 0; מספר <24; מספר ++) {strip.setPixelColor (עבור [מספר], ג); } strip.show (); // שליחת עיכוב נתונים (2000); אַקרַאִי(); // לייצר מזון} void mobile () {KEY = K; // כל תנועת נחש גורמת לשינוי הכיוון פעם אחת. אם (KEY == 8) // תנועת נחש כלפי מעלה {for (int i = 2 + ציון; i> 0; i--) {sx = sx [i-1]; sy = sy [i - 1]; } sy [0] = sy [0] - 1; אם (sy [0] <0) // מעבר לגבול והמשך בצד השני sy [0] = 7; } אחרת אם (KEY == 5) // תנועת נחש כלפי מטה {for (int i = 2 + score; i> 0; i--) {sx = sx [i-1]; sy = sy [i - 1]; } sy [0] = sy [0] + 1; if (sy [0]> 7) // מעבר לגבול והמשך בצד השני sy [0] = 0; } אחרת אם (KEY == 4) // תנועת שמאל נחש {עבור (int i = 2 + ציון; i> 0; i--) {sx = sx [i-1]; sy = sy [i - 1]; } sx [0] = sx [0] - 1; אם (sx [0] <0) // מעבר אל הגבול והמשך בצד השני sx [0] = 7; } אחרת אם (KEY == 6) // תנועה ימינה של נחש {עבור (int i = 2 + ציון; i> 0; i--) {sx = sx [i-1]; sy = sy [i - 1]; } sx [0] = sx [0] + 1; if (sx [0]> 7) // מעבר אל הגבול והמשך בצד השני sx [0] = 0; } // הזז גוף נחש עם כפתור} תצוגות חלל () {עבור (מספר = 0; מספר <64; מספר ++) // נקה את המסך {strip.setPixelColor (מספר, 0); } strip.show (); צבע [0] = 40; // הגדר צבע. הפרמטר הוא R G B, טווח 0-255. צבע [1] = 0; צבע [2] = 0; c = רצועה.צבע (צבע [1], צבע [0], צבע [2]); // ירוק אדום כחול // קבע צבע x = אור [FX] [FY]; // הצג רצועת מזון. SetPixelColor (x, c); צבע [0] = אקראי (3, 18); // הגדר צבע. הפרמטר הוא R G B, טווח 0-255. צבע [1] = אקראי (3, 18); צבע [2] = אקראי (3, 18); c = רצועה.צבע (צבע [1], צבע [0], צבע [2]); // ירוק אדום כחול // הגדר צבע עבור (int i = 2 + ציון; i> 0; i--) // הצג גוף נחש {x = אור [sx [sy ; strip.setPixelColor (x, c); } צבע [0] = 0; // הגדר צבע. הפרמטר הוא R G B, טווח 0-255. צבע [1] = 40; צבע [2] = 0; c = רצועה.צבע (צבע [1], צבע [0], צבע [2]); // ירוק אדום כחול // הגדרת צבע x = אור [sx [0] [sy [0]; // הצג רצועת ראש נחש.setPixelColor (x, c); strip.show (); // שלח נתונים} לולאת חלל () {mobile (); myDelay (speedS); // בתוך () הוא זמן עיכוב. מציג (); SX = sx [0]; SY = sy [0]; // קבל קואורדינטות של ראש הנחש עבור (int i = 1; i <= 2+ציון; i ++) {if (SX == sx && SY == sy ) gameover (); } // לשפוט אם ראש נחש נגע בגופו. אם נוגעים בך, המשך ל- GameOver. אם (SY == FY && SX == FX) {RANDOM (); ציון ++; צבע [0] = 40; // הגדר צבע. הפרמטר הוא R G B, טווח 0-255. צבע [1] = 0; צבע [2] = 0; c = רצועה.צבע (צבע [1], צבע [0], צבע [2]); // ירוק אדום כחול // קבע צבע x = אור [FX] [FY]; // הצג רצועת מזון. SetPixelColor (x, c); strip.show (); // שלח נתונים אם (! (ציון % 5)) {// צבר מהירות נחש לפי הציון. כל 5 מאכלים נאכלים, צבר 100 ms. speedS = speedS - 50; if (speedS <150) // הגבול התחתון הוא 200ms. אם המהירות נמוכה מ- 200ms, המהירות נשארת 200ms. מהירות S = 150; }}} // לשפוט אם אוכלים אוכל. אם נחש אכל מזון, אז פלוס ציונים ותחדש מזון באופן אקראי. }
תוצאת הניסוי
שלב 4: תוצאת הניסוי
קריאות יחסיות:
מכונית Bluetooth FreaksBot
הדליקו את החרוז הראשון על מטריקס 8*8 NeoPixels עם Arduino
ניסוי מיקרו: ביט 05: RGB LED - Elecfreaks Mirco: קורס ערכת התחלה של ביט
הודעת מוצר ביום שישי: ערכת הלחמה לתצוגת תדר מוסיקה ספקטרום
השתמש ב- ElecFreaks Micro: bit Tinker Kit ליצירת אור חכם
מוּמלָץ:
ילד משחק משחק רטרו חיצוני חיצוני: 3 שלבים
רטרו חיצוני משחק כונן משחקים: מאמר זה יכול להציג את עצמך במועדון חיצוני או ייחודי (du moins à ma connaissance). תחילת כריכה עם ממשק USB-SATA דה מונ דיסקה במהלך חיצוניים. לאחר שעות מסוימות מעבר לתפקיד
משחק סיימון - משחק מהנה !: 5 שלבים
משחק סיימון - משחק מהנה !: הפניה: כאן לאחר סוף שבוע ארוך, אתה חייב באמת להשתדל להשלים את כל המשימות והעבודה שאתה אחראי להן. הגיע הזמן שנאמן את המוח שלנו, לא? מלבד אותם משחקים משעממים וחסרי משמעות, ישנו משחק בשם Simon Game
בקר משחק DIY מבוסס Arduino - בקר משחקים Arduino PS2 - משחק Tekken עם לוח המשחקים Arduino DIY: 7 שלבים
בקר משחק DIY מבוסס Arduino | בקר משחקים Arduino PS2 | משחק Tekken עם DIY Arduino Gamepad: שלום חבר'ה, משחקים זה תמיד כיף, אבל משחק עם בקר DIY מותאם אישית משלך הוא יותר כיף. אז נכין בקר משחק באמצעות arduino pro micro במדריך זה
משחק נחש: 4 שלבים
משחק נחש: שלום חבר'ה, היום אני הולך להראות לכם איך להכין משחק נחש בסיסי בפייתון ולהדהים חברים בחופשה הזו. זה פשוט מאוד שאתה רק צריך להתקין פייתון 3 והתקנת pygame. במדריך זה הוספתי סרטון כיצד להתקין משחק pygame. לאחר
משחק נחש נחש ארדואינו OLED: 3 שלבים
משחק הנחש של Arduino OLED: היי וברוך הבא למדריכים שלנו כיצד להכין ומשחק OLED של arduino, הפרויקט הזה הגיע כשניסינו לעשות את המשחק הראשון שלנו אי פעם עם ארדואינו, סהוו, חשבנו מאיפה טוב יותר להתחיל מאשר הנוקיה נחש קלאסי (טוב לפחות