فهرست مطالب:

نسخه بازی مسابقه فضایی آردوینو _1: 5 مرحله
نسخه بازی مسابقه فضایی آردوینو _1: 5 مرحله

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

تصویری: نسخه بازی مسابقه فضایی آردوینو _1: 5 مرحله
تصویری: نحوه دانلود بازی های رایگان در پلی استیشن 5 | PS5 Free Games 2024, نوامبر
Anonim
Image
Image

سلام دوستان. امروز ı am ganna به شما نشان می دهد که چگونه می توانید یک بازی Space Race را با صفحه LCD5110 و جویستیک بسازید. بیایید مراحل را بررسی کنیم…

مرحله 1: نیازها

طرح
طرح

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

  • آردوینو 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، din، dc، rst، ce)

int BL = 3 ؛

extern uint8_t SmallFont ؛ // توصیف فونتهای خارجی uint8_t MediumNumbers ؛ extern uint8_t arac ؛ // شکل ما را توضیح دهید uint8_t dusman_araci extern ؛ // توصیف شکل دشمن const int xpin = A0؛ // جوی استیک x pin char pozisyon = 2؛ // توضیح محل ، شکل شروع مکان ما 2 boolean kontrol = true؛ boolean dusmanOldu = true؛ int skor = 0؛ int hiz = 0؛ int dusmanKonumu1؛ // توصیف دشمن 1 x مکان int dusmanKonumu2؛ // توصیف دشمن 2 x مکان int dusmaninYdeKonumu؛ // مکان دشمنان را شرح دهید

void dusmanAraci (int yer، int asama) {// مکانهایی را برای اشکال دشمن تنظیم کنید

if (yer == 1) {// if location = 1؛ lcd.drawBitmap (2 ، asama ، dusman_araci ، 12 ، 8) ؛ // رسم شکل دشمن} if (yer == 2) {lcd.drawBitmap (18 ، آساما ، dusman_araci ، 12 ، 8) ؛ } if (yer == 3) {lcd.drawBitmap (34 ، asama ، dusman_araci ، 12 ، 8) ؛ }}

void oyunBitti () {// اگر شکست بخوریم ، بازی تمام می شود

در حالی که (1) {تاخیر (100) ؛ // صبر کنید 1 میلی ثانیه lcd.clrScr ()؛ // صفحه را پاک کنید lcd.setFont (SmallFont) ؛ // تنظیم فونت lcd.print ("GAME OVER" ، CENTER ، 20) ؛ // چاپ lcd.update ()؛ // صفحه را به روز کنید}}

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

حلقه خالی () {

analogWrite (BL، 200)؛

// تنظیم صفحه بازی lcd.drawRect (0 ، 0 ، 47 ، 47) ؛ // ما مستطیل lcd.setFont (SmallFont) را ترسیم می کنیم ؛ // تنظیم فونت lcd.print ("skor" ، 53 ، 0) ؛ // printf score lcd.setFont (MediumNumbers) ؛ // تنظیم فونت lcd.printNumI (skor، 59، 7)؛ // دریافت امتیاز lcd.setFont (SmallFont) ؛ lcd.print ("hiz" ، 56 ، 25) ؛ // سرعت چاپ lcd.setFont (MediumNumbers) ؛ lcd.printNumI (hiz، 59، 32)؛ // دریافت سرعت lcd.update ()؛ //به روز رسانی

// محل joyistick int x = analogRead (xpin) را تنظیم کنید؛ if (x <300 && pozisyon! = 1 && kontrol == true) {// if location! = 1، x state600 && pozisyon! = 3 && kontrol == true) {// if location! = 3، x state> 600 و کنترل درست است pozisyon ++؛ // افزایش مکان به این معنی که شکل را به سمت راست منتقل کنید = false؛ } else if (x> 300 && x <600) {kontrol = true؛ } Serial.println (x)؛ // برای یادگیری حالت x // محل شکل ما را تعیین کنید lcd.clrScr ()؛ // صفحه را پاک کنید (pozisyon == 1) {// if location = 1؛ lcd.drawBitmap (2، 37، arac، 12، 8)؛} // کشتی ما را بکشید اگر (pozisyon == 2) {lcd.drawBitmap (18، 37، arac، 12، 8)؛}

if (pozisyon == 3) {

lcd.drawBitmap (34 ، 37 ، arac ، 12 ، 8) ؛}

if (dusmanOldu) {// اگر شکل دشمن مرده است ، بررسی کنید آیا آنها مرده اند

dusmanKonumu1 = موقعیت ؛ // رسم شکل اول دشمن dusmanKonumu2 = تصادفی (0 ، 4) ؛ // رسم شکل دیگری از دشمن در جایی dusmaninYdeKonumu = 0؛ // دشمن را از بالا بیاور dusmanOldu = false؛} // دشمن بازآفرینی می شود تا آنها مرده نباشند dusmanAraci (dusmanKonumu1، dusmaninYdeKonumu) ؛ dusmaninYdeKonumu ++؛ // اولین شکل دشمن را بکشید و آن را از بالا به پایین dusmanAraci (dusmanKonumu2، dusmaninYdeKonumu) بدست آورید. dusmaninYdeKonumu ++؛ // شکل دوم دشمن را بکشید و از بالا به پایین دریافت کنید (dusmaninYdeKonumu> 22 && (((dusmanKonumu1 == pozisyon) || (dusmanKonumu2 == pozisyon))) {// اگر شکل ما دشمن را oyunBitti () لمس می کند ()؛} // بازی به پایان رسیده است اگر (dusmaninYdeKonumu> 40) {// اگر شکل ما از دست دشمنان فرار کند dusmanOldu = true؛ // کشتن اشکال دشمن skor ++؛} // افزایش نمره یک به یک // افزایش سرعت بر اساس نمره if (skor> = 0 && skor10 && skor20 && skor30 && skor <= 40) {hiz = 3؛ تأخیر (40) ؛ }}

مرحله 4: کد BITMAP

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

// ---------------------------------------------------- ------------------------------ // فایل ایجاد شده توسط دستیار LCD // https://fa.radzio.dxp.pl /bitmap_converter/// ------------------------------------------------- --------------------------------- #شامل // برای عملکرد progmem

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

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

const unsigned char dusman_araci PROGMEM = {// bitmap کشتی دشمن

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

مرحله 5: با تشکر از مشاهده

با تشکر از مشاهده
با تشکر از مشاهده

قبل از اینکه من شروع به اشتراک گذاری پروژه های خود کنم ، با کلمات ترکی کدگذاری می کردم ، بنابراین نمی توانستم هر کلمه ای را به انگلیسی بسنجم. در اینجا کلمات ترجمه ای که this از این پروژه استفاده می کنند ،

اویون = بازی

Arac = شکل

دوسمان = دشمن

کنترل = کنترل

Konum، Yer = مکان

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

Skor = امتیاز

Hiz = سرعت

توصیه شده: