Mündəricat:

LCD İşğalçıları: 16x2 LCD Xarakterli Ekranda Oyun İstəyən Bir Kosmik İşğalçı: 7 addım
LCD İşğalçıları: 16x2 LCD Xarakterli Ekranda Oyun İstəyən Bir Kosmik İşğalçı: 7 addım

Video: LCD İşğalçıları: 16x2 LCD Xarakterli Ekranda Oyun İstəyən Bir Kosmik İşğalçı: 7 addım

Video: LCD İşğalçıları: 16x2 LCD Xarakterli Ekranda Oyun İstəyən Bir Kosmik İşğalçı: 7 addım
Video: Experience PACMAN-RTX like never before: Mind-blowing graphics and gameplay! ☺🎮📱 2024, Noyabr
Anonim
LCD İşğalçıları: 16x2 LCD Xarakterli Ekranda Oyun İstəyən Bir Space İşğalçıları
LCD İşğalçıları: 16x2 LCD Xarakterli Ekranda Oyun İstəyən Bir Space İşğalçıları
LCD İşğalçıları: 16x2 LCD Xarakterli Ekranda Oyun İstəyən Bir Space İşğalçıları
LCD İşğalçıları: 16x2 LCD Xarakterli Ekranda Oyun İstəyən Bir Space İşğalçıları
LCD İşğalçıları: 16x2 LCD Xarakterli Ekranda Oyun İstəyən Bir Space İşğalçıları
LCD İşğalçıları: 16x2 LCD Xarakterli Ekranda Oyun İstəyən Bir Space İşğalçıları
LCD İşğalçıları: 16x2 LCD Xarakterli Ekranda Oyun İstəyən Bir Space İşğalçıları
LCD İşğalçıları: 16x2 LCD Xarakterli Ekranda Oyun İstəyən Bir Space İşğalçıları

Əfsanəvi "Space Invaders" oyununu təqdim etməyə ehtiyac yoxdur. Bu layihənin ən maraqlı xüsusiyyəti, qrafik çıxışı üçün mətn ekranını istifadə etməsidir. 8 xüsusi simvol tətbiq etməklə əldə edilir.

Tam Arduino eskizini buradan yükləyə bilərsiniz:

github.com/arduinocelentano/LCD_invaders/

Təchizat

Arduino UNO idarə heyəti

LCD klaviatura qalxanı

Eskiz yükləmək üçün USB kabel

Addım 1: Oyun Dizaynı

Oyun Dizaynı
Oyun Dizaynı

Ekran ayrı pikselləri idarə etməyə imkan vermir və oyun üçün kifayət etməyən yalnız iki sətir mətn verir. Ancaq 8 -ə qədər xüsusi simvol tətbiq etməyə imkan verir. Hiylə, hər 5x8 piksellik xarakteri iki 5x4 piksellik oyun hüceyrəsi olaraq işləməkdir. Yəni 16x4 oyun sahəsinə sahib olacağıq, bu da mənalıdır. Oyunçunun kosmik gəmisi, güllə və cizgi əcnəbilər üçün sprite tətbiq etmək üçün 8 simvol kifayətdir. Spritler 5x4 və xarakterlər 5x8 olduğundan, "kosmik gəmi və güllə" spriti, "yadplanetli və güllə spriti" və s. Kimi iki sprite malik bəzi personajlara ehtiyacımız olacaq.

Addım 2: İşləmə Düymələri

Emal Düymələri
Emal Düymələri

Tipik olaraq, bir LCD qalxanındakı bütün düymələr eyni analoq pinə bağlıdır. LCD qalxanının fərqli versiyaları var, buna görə yəqin ki, düymə işləmə kodumda tam ədədləri bir az dəyişdirməlisiniz.

Addım 3: siniflər iyerarxiyası

Siniflər İerarxiyası
Siniflər İerarxiyası

Koordinatları, sürət sahələri və toqquşmaları emal edən əsas sinif GameObject tətbiq etdim. Gəmi, Alien və Bullet sinifləri ondan miras alınmışdır.

Addım 4: Ekranı yeniləyin

Ekranın yenilənməsi
Ekranın yenilənməsi

Görünüş məntiqi bir qədər mürəkkəb görünə bilər, çünki 16x4 oyun məntiqini 16x2 ekrana çevirmək məcburiyyətindəyik. Daha ətraflı məlumat üçün koddakı şərhləri oxuyun. Titrəməyin qarşısını almaq üçün mətn tamponu olaraq iki ölçülü char massivindən istifadə etdim. Ekranı yeniləmək üçün bir neçə çap əməliyyatı (hər sətir üçün bir) istifadə etməyə imkan verir.

Addım 5: Oyun Məntiqi

Oyun Məntiqi
Oyun Məntiqi

Budur oyunun ürəyi. Əsas döngə bütün cisimlərin koordinatlarını dəyişir, hər cür toqquşmaları və düymə basma hadisələrini yoxlayır. Əcnəbilərin sürəti və atışma ehtimalı səviyyədən səviyyəyə yüksəlir. Amma hesab mükafatı da artır.

Addım 6: Pasxa Yumurtası

Pasxa Yumurtası
Pasxa Yumurtası

42 -ci səviyyədən sonra heç bir səviyyə yoxdur. Ciddi. Həyatın, Kainatın və Hər şeyin Nəhayət səviyyəsidir.:)

Tövsiyə: