Mündəricat:

Tap Tap Rainbow - 2 Oyunçulu Sürətli Reaksiya Oyunu: 4 Addım (Şəkillərlə)
Tap Tap Rainbow - 2 Oyunçulu Sürətli Reaksiya Oyunu: 4 Addım (Şəkillərlə)

Video: Tap Tap Rainbow - 2 Oyunçulu Sürətli Reaksiya Oyunu: 4 Addım (Şəkillərlə)

Video: Tap Tap Rainbow - 2 Oyunçulu Sürətli Reaksiya Oyunu: 4 Addım (Şəkillərlə)
Video: Драка с собакой-партнером🐕 - They Are Coming Zombie Shooting & Defense 🎮📱 🇷🇺 2024, Noyabr
Anonim
Tap Rainbow vurun - 2 Oyunçulu Sürətli Reaksiya Oyunu
Tap Rainbow vurun - 2 Oyunçulu Sürətli Reaksiya Oyunu
Tap Rainbow vurun - 2 Oyunçulu Sürətli Reaksiya Oyunu
Tap Rainbow vurun - 2 Oyunçulu Sürətli Reaksiya Oyunu
Tap Rainbow vurun - 2 Oyunçulu Sürətli Reaksiya Oyunu
Tap Rainbow vurun - 2 Oyunçulu Sürətli Reaksiya Oyunu

LED simli yalnız 3 teldən istifadə edir. Buna görə yalnız 5V gücə (qırmızı), yerə (ağa) və siqnala (yaşıl) ehtiyacım var idi. Bir Espruino da istifadə edirsinizsə, veb saytındakı dərsləri yoxlayın. RGB LED -lər üçün çox aydın şəkildə izah edilmişdir.

LED simini 6 LED -in 3 hissəsinə ayırdım və sonra bunları əlavə tellərlə bağladım. Bu şəkildə, bütün LED -lərin hamısı lövhədə 2 əlavə port saxlayan eyni proqramı istifadə edir və proqramlaşdırmaq daha asandır.

Düymələri birləşdirmək bir az daha çətin idi. Lövhədə mümkün qədər az liman istifadə etmək istədim, buna görə də I2C qurğusundan istifadə etməyi düşünürdüm, amma çox uğursuz oldu. İşə götürə bilmədim, başqa bir şeyə baxdım.

Nəhayət, Espruinoda 16 düyməli Klaviatura Matrixi olaraq bağlanan bir Keypad üçün bir dərs tapdım. Bunu həyata keçirmək olduqca asan görünürdü, buna görə də getdim. 3x4 matrisə ehtiyacım olduğu üçün yalnız 12 düyməyə ehtiyacım var.

Klaviatura matrisində bütün düymələr sütunlara və satırlara bağlanır. Bu şəkildə 16 düymə üçün yalnız 8 porta ehtiyacınız var. Quraşdırmada yalnız 2 dəfə 6 düyməyə ehtiyacım var, buna görə lövhədə 7 port var (3 sütunlu 4 satır). 12 düyməni ayrı -ayrılıqda bağladıqdan sonra hələ də çox azdır və Espruinonun Klaviatura modulundan istifadə etmək çox asandır.

Düymələrin naqilləşdirilməsində mənə çox kömək edən dövrə əsasları üzrə klaviatura haqqında yaxşı bir dərs tapdım.

Bütün düymələrimi bağlaya bildiyim zaman bağlayıcılar daim sürüşdüyündən və gec qaldığından çox məyus oldum. Beləliklə, hər şeyi qutuya yapışdırdım və şəkil çəkməyi tamamilə unutdum. Qutulardan 1 -də bir tel bağlamağım lazım olduğu gün də çox istifadəçi dostu deyil.

Addım 3: Kod yazmaq

Kod yazmaq
Kod yazmaq
Kod yazmaq
Kod yazmaq
Kod yazmaq
Kod yazmaq

Espruino Javascript -də proqramlaşdırılmışdır, buna görə mənim üçün Arduino üçün kod yazmaqdan daha az mürəkkəbdir.

Kod bəzi optimallaşdırmadan istifadə edə bilər, amma bu işi indi edir. Eyni anda 2 düyməni basa bilmədiyiniz bir səhv (bəlkə də bir xüsusiyyətdir: D). Ancaq oyunu oynamağı bir az daha çətinləşdirir (sinir bozucu oxuyun), buna görə də məsələni hələ araşdırmamışam, bu şəkildə xoşuma gəlir (boşa getsəniz əlavə sinir bozucudur).

LED -lərin proqramlaşdırılması çox asandır. Sətirdəki hər bir LED, bir sıra üçün 3 dəyərdir. Beləliklə, [255, 0, 0, 255, 0, 0] kimi bir diziniz varsa, ilk 2 LED qırmızıdır.

Tez bir baxışda.

1. Əvvəlcə rənglərimi təyin edirəm və bütün rənglərdən ibarət bir sıra düzəldirəm

2. Sonra düymə IDləri və hər bir oyunçunun LED simində hansı indeksi olduğu kimi oyunçu parametrlərini təyin edirəm

3. Oyunun əvvəlində göy qurşağı dizisindəki bütün rəngləri qarışdırıram və bu məlumatları yeni bir Arrayda saxlayıram. Sonra bütün LEDləri sıfırlayıram və qarışıq göy qurşağı rəngləri ilə üst LEDləri yandırıram

4. Nəhayət, əsas hadisələri dinləyən kodumuz var. Bütün girişləri bir dizidə saxlayıram və bu dizinin düzgün ardıcıllıqla olub olmadığını yoxlayıram.

5. Dünən əlavə etdiyim gözəl bir əlavə, qaliblərin zəhmli bir göy qurşağı animasiyası ilə müalicə olunduğunu göstərir: D

Daha əyləncəli hala gətirməyi düşündüyüm bir çox şey var, amma bu sonradan bir şeydir;)

Tam mənbə kodunu yükləyə bilmirəm, buna görə Gitlab -a qoydum

gitlab.com/marzsman/tap_tap_rainbow

Addım 4: Əylən !!! ?

Image
Image
Bununla Əylən !!! ?
Bununla Əylən !!! ?

Qızımla mən fikirlərini yazanda və necə görünəcəyini düşündükdə fikir dərhal xoşuma gəldi. Amma deməliyəm ki, oynamağın bu qədər əyləncəli olacağını heç düşünməmişəm. Onsuz da böyük göy qurşağı vurma döyüşlərimiz vardı: D

Ümid edirəm ki, hər kəs bizim kimi əylənə bilər.

Bu da qısa müddətdə etdiyim və 8 yaşındakı qızımla birlikdə etdiyim ilk tam layihədir VƏ eyni zamanda mənim ilk təlimatlandırmağımdır (NƏTİCƏ!), Buna görə də bir tərəfdən mənim üçün çox xüsusi bir layihədir. Buna görə də bəyənəcəyimi ümid edirəm!

Hər hansı bir sualınız və ya təklifiniz varsa, onları eşitməkdən məmnunam!

Tövsiyə: