فهرست مطالب:

بازی مسابقه فضایی نسخه 2: 5 مرحله
بازی مسابقه فضایی نسخه 2: 5 مرحله

تصویری: بازی مسابقه فضایی نسخه 2: 5 مرحله

تصویری: بازی مسابقه فضایی نسخه 2: 5 مرحله
تصویری: ❌لینک ویدئو کامل:https://youtu.be/Op8kxq5YJeg❌ 2024, جولای
Anonim
Image
Image

هی همه. قبل از این نسخه بازی ، first اولین نسخه بازی را منتشر کرد. امروز ، ı به شما بازی Space Race Game نسخه 2 را نشان می دهد. بیایید مراحل را بررسی کنیم…

مرحله 1: PARTS

طرح
طرح

در اینجا لیستی از قطعاتی است که برای ساخت این پروژه استفاده کردم:

  • آردوینو UNO
  • ماژول جوی استیک
  • Jumper Wires (مرد به مرد و مرد به زن)
  • تخته نان

مرحله 2: SCHEMA

VCC -> آردوینو 5 ولت

BL -> پین آردوینو 3

GND -> Arduino GND

CLK (SCLK) -> پین آردوینو 8

DIN (MOSI) -> پین آردوینو 9

DC -> پین آردوینو 10

CE یا CS -> آردوینو پین 12

RST (RESET) -> پین آردوینو 11

مرحله 3: کد

کد
کد

کد توضیحاتی در مورد توابع کد دارد. شما به راحتی آن را درک خواهید کرد. اگر مشکلی دارید ، می توانید با من تماس بگیرید.

#عبارتند از

LCD5110 ال سی دی (8 ، 9 ، 10 ، 11 ، 12) ؛ // (clk، cin، dc،، rst، ce)

boolean kontrol = true؛

bousan dusmanoldu = true؛

extern uint8_t SmallFont ؛ // فونت ها را توصیف کنید

extern uint8_t MediumNumbers ؛ extern uint8_t arac ؛ // توصیف شکل ما extern 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 مکان 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" ، CENTER ، 8) ؛ // چاپ بازی روی lcd.print ("skorunuz ="، 3، 30)؛ // نمره خود را چاپ کنید lcd.setFont (MediumNumbers) ؛ lcd.printNumI (skor، 60، 25)؛ // دریافت آخرین نمره lcd.update ()؛ }}

void setup () {

pinMode (BL ، OUTPUT) ؛ // تنظیم نور عقب خروجی pinMode (xpin ، INPUT) ؛ // x pin را به عنوان ورودی lcd. InitLCD () تنظیم کنید؛ // پارامتر کردن صفحه LCD lcd.setContrast (55) ؛ // تنظیم کنتراست (دامنه 0 تا 127) Serial.begin (9600) ؛ // شروع ارتباط سریال}

حلقه خالی () {

analogWrite (BL، 350)؛ oyunEkrani ()؛

// joyistic durumu… // تنظیم محل 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 ++؛ // افزایش مکان به این معنی که شکل را به سمت راست منتقل کنید = false؛ } else if (durumx> 300 && durumx <600) {kontrol = true؛ } // pozisyon durumu… // وضعیت موقعیت… 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 ()؛} 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 ()؛}

if (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 ++ ؛ if (dusmaninYdekonumu> 35 && ((dusmankonum1 == pozisyon) || (dusmankonum2 == pozisyon) || (dusmankonum3 == pozisyon) || (dusmankonum4 == pozisyon))) {// اگر شکل ما شکل oyunbitti دشمن را لمس کند ()؛ //بازی تمام شد }

if (dusmaninYdekonumu> 42) {// اگر شکل ما از دست دشمنان فرار کند

dusmanoldu = true؛ // کشتن اشکال دشمن skor ++؛ // نمره را یک به یک افزایش دهید}

// skora gore hizi artiriyoruz // افزایش سرعت با توجه به نمره

if (skor> = 0 && skor = 10 && skor = 20 && skor = 30 && skor = 40 && skor = 50) {hiz = 6؛ تأخیر (5) ؛ }

}

مرحله 4: کد BITMAP

علاوه بر این ، شما باید گرافیک bitmap را برای اشکال وارد کنید. باید یک فایل c باشد.

#شامل // برای عملکرد progmem

const unsigned char arac PROGMEM = {// bitmap شکل ما

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

const unsigned char dusmanAraci PROGMEM = {// نقشه نقشه دشمن

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

مرحله 5: ممنون از مشاهده

معنی برخی از کلمات:

Oyun => بازی

Arac => شکل

دوسمان => دشمن

کنترل => کنترل

Konum، Yer => مکان

Oyun Bitti => بازی تمام شد

Skor => امتیاز

Hiz => سرعت

توصیه شده: