جدول المحتويات:

الإصدار 2: 5 خطوات من لعبة Space Race
الإصدار 2: 5 خطوات من لعبة Space Race

فيديو: الإصدار 2: 5 خطوات من لعبة Space Race

فيديو: الإصدار 2: 5 خطوات من لعبة Space Race
فيديو: Model Rocket Battle 2 | Dude Perfect 2024, شهر نوفمبر
Anonim
Image
Image

مرحبا جميعا. قبل إصدار هذه اللعبة ، قمت بنشر الإصدار الأول من اللعبة. اليوم ، سأريك الإصدار الثاني من لعبة Space Race. لنلقِ نظرة على الخطوات …

الخطوة 1: الأجزاء

مخطط
مخطط

فيما يلي قائمة بالأجزاء التي استخدمتها لإنشاء هذا المشروع:

  • اردوينو UNO
  • وحدة جويستيك
  • أسلاك العبور (ذكر إلى ذكر ومن ذكر إلى أنثى)
  • اللوح

الخطوة 2: المخطط

VCC -> Arduino 5V

BL -> Arduino pin 3

GND -> Arduino GND

CLK (SCLK) -> Arduino pin 8

DIN (MOSI) -> Arduino pin 9

DC -> Arduino pin 10

CE أو CS -> Arduino pin 12

RST (إعادة تعيين) -> Arduino pin 11

الخطوة 3: الكود

الشفرة
الشفرة

يحتوي الكود على تفسيرات لوظائف الكود. سوف تفهمها بسهولة. إذا كانت لديك مشكلة ، يمكنك الاتصال بي.

#يشمل

LCD5110 LCD (8 ، 9 ، 10 ، 11 ، 12) ؛ // (clk، cin، dc،، rst، ce)

كونترول منطقي = صحيح ؛

منطقية dusmanoldu = صحيح ؛

خارجي uint8_t SmallFont ؛ // وصف الخطوط

خارجي uint8_t MediumNumbers ؛ uint8_t arac خارجي ؛ // وصف الشكل الخارجي uint8_t dusmanAraci ؛ // وصف شكل العدو const int xpin = A0 ؛ // عصا التحكم x pin 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 في dusmaninYdekonumu؛

void oyunEkrani () {// ضبط شاشة اللعبة

lcd.clrScr () ، lcd.drawRect (0 ، 0 ، 47 ، 47) ؛ // نرسم شاشة lcd.setFont (SmallFont) ؛ // set font lcd.print ("skor"، 57، 1) ؛ // طباعة النتيجة lcd.print ("hiz"، 60، 24) ؛ // سرعة الطباعة lcd.setFont (أرقام متوسطة) ؛ // تعيين الخط 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 ()؛} إذا (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"، CENTER، 8) ؛ // print game over lcd.print ("skorunuz ="، 3، 30) ؛ // طباعة درجاتك lcd.setFont (أرقام متوسطة) ؛ lcd.printNumI (سكور ، 60 ، 25) ؛ // الحصول على آخر نتيجة lcd.update () ؛ }}

الإعداد باطل() {

pinMode (BL ، الإخراج) ؛ // تعيين ضوء الإخراج pinMode (xpin ، INPUT) ؛ // تعيين x دبوس كإدخال lcd. InitLCD () ؛ // initilaze شاشة lcd lcd.setContrast (55) ؛ // ضبط التباين (حوالي 0 إلى 127) Serial.begin (9600) ؛ // بدء الاتصال التسلسلي}

حلقة فارغة() {

analogWrite (BL ، 350) ؛ oyunEkrani () ؛

// joyistic durumu… // تعيين موقع جويستيك …

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 ++ ؛ // قم بزيادة الموقع ، فهذا يعني تحريك الشكل إلى جهة التحكم اليمنى = خطأ ؛ } else if (durumx> 300 && durumx <600) {kontrol = true؛ } // pozisyon durumu… // position state… if (pozisyon == 1) {// if location = 1؛ lcd.drawBitmap (2، 41، arac، 7، 7)؛ lcd.update ()؛} // ارسم سفينتنا if (pozisyon == 2) {lcd.drawBitmap (10، 41، arac، 7، 7)؛ lcd.update ()؛} إذا (pozisyon == 3) {lcd.drawBitmap (18، 41، arac، 7، 7)؛ lcd.update ()؛} if (pozisyon == 4) {lcd.drawBitmap (26 ، 41، arac، 7، 7)؛ lcd.update ()؛} إذا (pozisyon == 5) {lcd.drawBitmap (34، 41، arac، 7، 7)؛ lcd.update ()؛} إذا (pozisyon == 6) {lcd.drawBitmap (42، 41، arac، 7، 7)؛ lcd.update ()؛}

إذا (dusmanoldu) {// إذا كان شكل العدو ميتًا ، فتحقق من أنهم قد ماتوا

dusmankonum1 = بوزيسيون ؛ // ارسم شكل العدو الأول 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 ++ ؛ if (dusmaninYdekonumu> 35 && ((dusmankonum1 == pozisyon) || (dusmankonum2 == pozisyon) || (dusmankonum3 == pozisyon) || (dusmankonum4 == pozisyon))) {// if ourb touchi sources (oyun)) ؛ //انتهت اللعبة }

if (dusmaninYdekonumu> 42) {// إذا كان شكلنا يهرب من الأعداء

dusmanoldu = صحيح ؛ // قتل أشكال العدو skor ++ ؛ // زيادة النتيجة واحدة تلو الأخرى}

// skora gore hizi artiriyoruz // زيادة السرعة وفقًا للنتيجة

إذا (skor> = 0 && skor = 10 && skor = 20 && skor = 30 && skor = 40 && skor = 50) {hiz = 6 ؛ تأخير (5) ؛ }

}

الخطوة 4: كود BITMAP

علاوة على ذلك ، يجب عليك تضمين رسم نقطي للأشكال ، حيث يجب أن يكون ملف.c.

# تضمين // تضمين لوظيفة progmem

const غير موقعة char arac PROGMEM = {// صورة نقطية للشكل

0xFF ، 0xFF ، 0xFF ، 0xFF ، 0xFF ، 0xFF ، 0xFF ،} ؛

const غير موقعة char dusmanAraci PROGMEM = {// صورة نقطية لسفينة العدو

0xFF ، 0xFF ، 0xFF ، 0xFF ، 0xFF ، 0xFF ، 0xFF ،} ؛

الخطوة 5: شكرا على المشاهدة

معنى بعض الكلمات:

Oyun => لعبة

Arac => الشكل

Dusman => العدو

kontrol => التحكم

كونوم ، يير => الموقع

Oyun Bitti => انتهت اللعبة

سكور => النتيجة

Hiz => السرعة

موصى به: