תוכן עניינים:

משחק מירוץ החלל גרסה 2: 5 שלבים
משחק מירוץ החלל גרסה 2: 5 שלבים

וִידֵאוֹ: משחק מירוץ החלל גרסה 2: 5 שלבים

וִידֵאוֹ: משחק מירוץ החלל גרסה 2: 5 שלבים
וִידֵאוֹ: אל תיגע לבחורה באיפור בחייםםם !!!! don't do that !!! 2024, יולי
Anonim
Image
Image

היי לכולם. לפני גרסת המשחק הזו, אני פרסמתי את הגרסה הראשונה של המשחק. היום, אני אראה לכם את משחק מירוץ החלל בגרסה 2. בואו נסתכל על שלבים …

שלב 1: חלקים

סכֵימָה
סכֵימָה

להלן רשימה של חלקים בהם השתמשתי לצורך ביצוע הפרויקט:

  • ארדואינו UNO
  • מודול ג'ויסטיק
  • חוטי מגשר (זכר לזכר וזכר לנקבה)
  • לוח לחם

שלב 2: סכמה

VCC -> Arduino 5V

BL -> סיכת ארדואינו 3

GND -> Arduino GND

CLK (SCLK) -> סיכת ארדואינו 8

DIN (MOSI) -> סיכת ארדואינו 9

DC -> סיכת ארדואינו 10

CE או CS -> סיכת Arduino 12

RST (איפוס) -> סיכת ארדואינו 11

שלב 3: CODE

קוד
קוד

הקוד כולל הסברים על פונקציות הקוד. אתה תבין את זה בקלות. אם יש לך בעיה אתה יכול ליצור איתי קשר.

#לִכלוֹל

LCD5110 lcd (8, 9, 10, 11, 12); // (clk, cin, dc,, rst, ce)

שליטה בוליאנית = אמת;

dusmanoldu בוליאני = נכון;

חיצוני uint8_t SmallFont ; // תאר את הגופנים

extern uint8_t MediumNumbers ; חיצוני uint8_t arac ; // תאר את צורתנו החיצונית uint8_t dusmanAraci ; // תאר את צורת האויב const int xpin = A0; // ג'ויסטיק x סיכה char pozisyon = 3; // תאר את המיקום, צורת התחלת מיקום 3 int BL = 3; int skor = 0; int hiz = 0; int dusmankonum1; // תאר את האויב 1 x מיקום int dusmankonum2; // תאר את האויב 2 x מיקום int dusmankonum3; // תאר את האויב 3 x מיקום int dusmankonum4; // לתאר אויב 4 x מיקום int dusmankonum5; // תאר את האויב 5 x מיקום int dusmaninYdekonumu;

void oyunEkrani () {// להגדיר מסך משחק

lcd.clrScr (); lcd.drawRect (0, 0, 47, 47); // אנו מציירים מלבן lcd.setFont (SmallFont); // הגדר lcd.print ("skor", 57, 1); // הדפס ציון lcd.print ("hiz", 60, 24); // מהירות הדפסה lcd.setFont (MediumNumbers); // הגדר lcd.printNumI (skor, 55, 8); // לקבל ציון lcd.printNumI (hiz, 63, 32); // קבל מהירות lcd.update (); }

void dusmanAracidurum (int yer, int asama) {// קבע מיקומים לצורות אויב

if (yer == 1) {lcd.drawBitmap (2, asama, dusmanAraci, 7, 7); lcd.update ();} // if location = 1 צייר את האויב בצורה זו אם (yer == 2) {lcd.drawBitmap (10, asama, dusmanAraci, 7, 7); lcd.update ();} if (yer == 3) {lcd.drawBitmap (18, asama, dusmanAraci, 7, 7); lcd.update (); } if (yer == 4) {lcd.drawBitmap (26, asama, dusmanAraci, 7, 7); lcd.update ();} if (yer == 5) {lcd.drawBitmap (34, asama, dusmanAraci, 7, 7); lcd.update ();} if (yer == 6) {lcd.drawBitmap (42, asama, dusmanAraci, 7, 7); lcd.update ();}}

void oyunbitti () {// אם נכשל, המשחק נגמר

בעוד (1) {עיכוב (100); // המתן 1 מילישניות lcd.clrScr (); lcd.setFont (SmallFont); lcd.print ("OYUN BITTI", CENTRE, 8); // משחק הדפסה מעל lcd.print ("skorunuz =", 3, 30); // הדפס את הציון שלך lcd.setFont (MediumNumbers); lcd.printNumI (skor, 60, 25); // קבל את הציון האחרון lcd.update (); }}

הגדרת בטל () {

pinMode (BL, OUTPUT); // להחזיר אור פלט pinMode (xpin, INPUT); // הגדר סיכה x כקלט lcd. InitLCD (); // התחל את מסך lcd lcd.setContrast (55); // הגדר ניגודיות (בין 0 ל -127) Serial.begin (9600); // התחל תקשורת סדרתית}

לולאת חלל () {

analogWrite (BL, 350); oyunEkrani ();

// durumu joyistic… // קבע את המיקום של joyistick…

int durumx = analogRead (xpin); if (durumx <300 && pozisyon! = 1 && kontrol == true) {// if location! = 1, x state600 && pozisyon! = 6 && kontrol == true) {// if location! = 3, x state> 600 והשליטה היא pozisyon ++ אמיתית; // להגדיל את המיקום המשמעות היא להעביר צורה לאופן הנכון kontrol = false; } אחרת אם (durumx> 300 && durumx <600) {kontrol = true; } // pozisyon durumu… // מצב מצב … if (pozisyon == 1) {// if location = 1; lcd.drawBitmap (2, 41, arac, 7, 7); lcd.update ();} // צייר את הספינה שלנו אם (pozisyon == 2) {lcd.drawBitmap (10, 41, arac, 7, 7); lcd.update ();} if (pozisyon == 3) {lcd.drawBitmap (18, 41, arac, 7, 7); lcd.update ();} if (pozisyon == 4) {lcd.drawBitmap (26, 41, arac, 7, 7); lcd.update ();} if (pozisyon == 5) {lcd.drawBitmap (34, 41, arac, 7, 7); lcd.update ();} if (pozisyon == 6) {lcd.drawBitmap (42, 41, arac, 7, 7); lcd.update ();}

אם (dusmanoldu) {// אם צורת האויב מתה, בדוק האם הם מתים

dusmankonum1 = pozisyon; // צייר צורת אויב ראשונה dusmankonum2 = אקראי (0, 6); // צייר צורת אויב נוספת במקום כלשהו dusmankonum3 = אקראי (0, 6); dusmankonum4 = אקראי (0, 6); dusmankonum5 = אקראי (0, 6); dusmaninYdekonumu = 0; // להביא את האויב מהחלק העליון dusmanoldu = false;} // האויב יוצר מחדש כדי שלא ימותו

dusmanAracidurum (dusmankonum1, dusmaninYdekonumu); dusmaninYdekonumu ++; // צייר את צורת האויב הראשונה וקבל אותה מלמעלה למטה

dusmanAracidurum (dusmankonum2, dusmaninYdekonumu); dusmaninYdekonumu ++; // צייר את צורת האויב השנייה וקבל אותה מלמעלה למטה dusmanAracidurum (dusmankonum3, dusmaninYdekonumu); dusmaninYdekonumu ++; dusmanAracidurum (dusmankonum4, dusmaninYdekonumu); dusmaninYdekonumu ++; אם (dusmaninYdekonumu> 35 && ((dusmankonum1 == pozisyon) || (dusmankonum2 == pozisyon) || (dusmankonum3 == pozisyon) || (dusmankonum4 == pozisyon))) {// אם צורתנו נוגעת בצורות האויב oyunbitti (); //המשחק נגמר }

if (dusmaninYdekonumu> 42) {// אם צורתנו בורחת מאויבים

dusmanoldu = נכון; // להרוג צורות אויב ++; // להגדיל בזה אחר זה את הציון}

// skora gore hizi artiriyoruz // הגדילו את המהירות לפי הציון

אם (skor> = 0 && skor = 10 && skor = 20 && skor = 30 && skor = 40 && skor = 50) {hiz = 6; עיכוב (5); }

}

שלב 4: BITMAP CODE

יתר על כן, עליך לכלול גרפיקת מפת סיביות לצורות. זה חייב להיות קובץ.c.

#include // include עבור פונקציית התוכנה

const uns sign char arac PROGMEM = {// מפת הסיביות של הצורה שלנו

0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};

const unsigned char dusmanAraci PROGMEM = {// מפת סיביות של ספינת אויב

0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};

שלב 5: תודה על הצפייה

פירוש של כמה מילים:

Oyun => משחק

Arac => צורה

דושמן => אויב

kontrol => שליטה

Konum, Yer => מיקום

Oyun Bitti => המשחק נגמר

סקור => ציון

Hiz => מהירות

מוּמלָץ: