Mündəricat:
Video: Arduino Space Rocks Oyunu: 3 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:45
İstər kompüterdə, istər telefonda, istər oyun konsolunda, istərsə də müstəqil bir qutuda oynansalar da, bir çox video oyun maneələrin qarşısını almaq elementini ehtiva edir. Əlbəttə ki, ayələr toplamaq və ya bir labirentdən yol tapmaq üçün verilən ballar ola bilər, amma əmin olun ki, oyunda yeganə məqsədi bunu etməyə mane olmaqdır. İlk video oyunu Pong idi, amma bundan sonra ən populyar oyunlar "Asteroidlər" və ya "Pac-Man" kimi şeylər idi. Daha yeni bir dəyişiklik, "Flappy Birds" in sadə, lakin asılılıq oyunu olardı.
Bu yaxınlarda gördüm ki, kimsə ümumi 1602 LCD-də səsləndirilən "Flappy Bird" in sadə iki səviyyəli versiyasını hazırladı. Nəvələrin bəyənə biləcəyi bir şey olacağını düşündüm və sıfırdan öz varyasyonumu etməyə qərar verdim. 1602 versiyasının yalnız iki səviyyəsi var, buna görə oyunun çətinliyini bir qədər artırmaq üçün 2004 LCD (20x4) istifadə etməyə qərar verdim. Oyunçunun "kosmik qayalar" labirintindən keçərək "gəmiyə" rəhbərlik etməsini də "Asteroidlər" kimi daha çox etməyi seçdim. Oyunun qurulması ilə maraqlanmasanız da, öz layihələrinizdən birində istifadə edə biləcəyiniz proqramın bəzi elementləri ola bilər.
Addım 1: Avadanlıq
Cihaz demək olar ki, hər hansı bir Arduino versiyasına əsaslana bilər. Nano istifadə edərək prototip hazırladım və sonra kodu ATMega328 çipinə yandırdım. Bu, Nano'da istifadə olunan eyni çipdir, ancaq öz -özünə istifadə etmək daha kompakt bir quruluşa və daha az enerji istehlakına imkan verir. Gördüyünüz kimi, dövrəni LCD modulunun üstündəki kiçik bir çörək taxtası üzərində qurdum. Fərqli olan digər cəhət Nanonun xarici bir kristal istifadə edərək 16 MHz-də işləməsidir, amma ATMega328 çipi üçün quraşdırılmış 8 MHz osilatordan istifadə etməyi seçdim. Bu hissələrə və gücə qənaət edir.
2004 LCD, Arduino üçün 1602 LCD ilə eyni şəkildə işləyir. Maraqlı bir fərq, nümayiş yerlərinin ünvanlanmasıdır. Aydındır ki, bir fərq var, çünki iki əvəzinə dörd xətt var, lakin 2004 -cü ildə üçüncü sətir birinci sətrin, dördüncü xətt isə ikinci sətrin uzantısıdır. Başqa sözlə, LCD -yə yeni bir simvol göndərən bir test proqramınız olsaydı, 21 -ci simvol üçüncü sətrin əvvəlində görünərdi və 41 -ci xarakter birinci sətrin əvvəlinə qayıdır. Bu xüsusiyyətdən labirentin uzunluğunu təsirli şəkildə iki qat artırmaq üçün proqramda istifadə edirəm.
Versiyamı batareya ilə təmin etmək qərarına gəldim, buna görə ümumi 18650 Li-ion, 3.6 voltluq bir batareya istifadə etdim. Bunun üçün USB şarj etməyə imkan verən kiçik bir lövhə və LCD və ATMega çipi üçün batareyanın gərginliyini 5 volta qədər artırmaq üçün başqa bir kiçik lövhə əlavə etməyim lazım idi. Şəkillər istifadə etdiyim modulları göstərir, lakin hər iki funksiyanı yerinə yetirən all-in-one modulları da var.
Addım 2: Proqram təminatı
Proqram həm Nano, həm də ATMega328 çipi üçün eynidir. Yeganə fərq proqramlaşdırma üsulundadır. 1602 LCD proqramının öz yalın sümük versiyamdan istifadə edirəm və bu layihədəki LCD proqramı buna əsaslanır. 2004 -cü il ekranın əlavə xətlərini həll etmək üçün qabiliyyətlər əlavə etməliyəm və ekranı dəyişdirmək üçün rutinlər də əlavə etməliyəm. Ekran dəyişməsi "qayaların" "gəminin" yanından keçən hərəkət effektini təmin edir.
Daha əvvəl də qeyd edildiyi kimi, 1 və 3 -cü sətirlər dairəvi növbə təşkil edir və 2 və 4 -cü sətirlər də bunu edir. Bu o deməkdir ki, 20 növbədən sonra 1 və 3 -cü xətlər dəyişdirilir və 2 və 4 -cü xətlər dəyişdirilir. 40 növbədən sonra xətlər əvvəlki vəziyyətlərinə qayıdır. Bu davranışdan ötəri, 20 simvoldan ibarət orijinal labirent, xətlər dəyişdirildikdə tamamilə fərqli olur. Bir labirent yaratmağa çalışdığımda həyatı maraqlı etdi. Proqramı daim dəyişdirmədən yolu qrafikə salmaq üçün nəhayət bir Excel cədvəli açdım. Burada təqdim olunan proqram, labirentin iki versiyasına malikdir (biri şərh olunur), buna görə istədiyinizi seçə və ya özünüz edə bilərsiniz.
Əvvəlcə bunun gənc nəvələrin oynaya biləcəyi qədər sadə olmasını istədim, amma onlar da (və ya başqası) çox yaxşı bacarırlarsa, əlavə bir problem yaşamasını istədim. Oyun 1 saniyəyə təyin olunan keçid dərəcəsi ilə başlayır. Daxili tic dərəcəsi 50ms -dir, yəni yuxarı/aşağı düymələrinin basıla biləcəyi 20 aralıq var. Əslində, basılan bir düymə 2 tikə istehlak edir, çünki mətbuatı aşkar etmək üçün 50 ms aralığında və buraxılmasını gözləmək üçün başqa 50 ms aralığında istifadə olunur. Varsayılan labirentlə, növbəti növbədən əvvəl tələb olunan maksimum pres sayı üçdür. Oyunun çətinliyini artırmağın sadə yolu, növbələr arasındakı vaxtı qısaltmaqdır, belə ki, bir neçə kod xətti hesab artdıqca bunu edir. Vəziyyət dərəcəsi, hər 20 növbədə 50ms sürətləndiriləcək, minimum sürət isə 500ms ilə məhdudlaşacaq. Bu parametrləri dəyişdirmək asandır.
Dəyişiklik dərəcəsini dəyişdirməkdən başqa, proqramdakı əsas məntiq "gəmini" hərəkət etdirmək və "gəminin" "qaya" ilə toqquşub -vuruşmadığını müəyyən etməkdir. Bu funksiyalar, müəyyən edilmiş "rok/kosmos" dizisindən və ekrandakı yaddaş yerlərini təyin edən dizidən faydalanır. Dəyişmə sayı, LCD-nin xətt uzunluğuna (0-19) uyğundur və bu seriallara indeks olaraq istifadə olunur. Məntiq, xətlərin hər 20 növbədə bir -birini əvəz etməsi ilə çətinləşir. Bənzər məntiq dörd sətirdən hər hansı birində ola biləcək "gəminin" mövqeyini təyin etmək üçün istifadə olunur.
Hər oyun üçün hesab sadəcə baş verən növbələrin sayını və yüksək bal daxili EEROM mikrokontrolöründə saxlanılır. EEPROM kitabxanası bu yaddaşı oxumaq və yazmaq üçün istifadə olunur. Mövcud rutinlər tək bayt oxumaq/yazmaq və üzən nöqtə dəyərlərini oxumaq/yazmaq imkanı verir. 0xA5 dəyəri, yüksək hesabın saxlandığını göstərmək üçün ilk EEROM yerində saxlanılır. Bu dəyər gücdə olduqda, yüksək bal üçün üzən nöqtə dəyəri oxunur və göstərilir. 0xA5 dəyəri yoxdursa, yüksək balı 1 -ə endirmək üçün bir prosedur çağırılır. Yuxarı/aşağı düymələrindən birini basıb saxlayın və sonra sıfırlama düyməsini bir anda basaraq yüksək bal 1 dəyərinə qaytarılır.
Addım 3: Oyunu oynamaq
Güc tətbiq edildikdə, mövcud yüksək bal göstərilir. Yüksək hesab göstərildikdən sonra "qayalar" və "gəmi" labirentləri göstərilir, sonra oyun bir neçə saniyə sonra başlayır. "Gəmi" "qaya" ya düşdükdə, oyunun hesabını göstərməzdən əvvəl bir neçə dəfə "ÇARP VƏ YAN" mesajı yanıb sönür. Yeni bir yüksək nəticə verildikdə, bu mesaj da göstərilir. Sıfırlama düyməsinə basaraq yeni bir oyun başlayır.
Tövsiyə:
Aruduino LED Oyunu İki Oyunçu Oyunu Sürətli Tıklayır: 8 Addım
Aruduino LED Oyunu İki Oyunçu Oyunu Sürətli Tıklayaraq: Bu layihə @HassonAlkeim -dən ilhamlanıb. Bura dərindən baxmaq istəsəniz https://www.instructables.com/id/Arduino-Two-Player-Fast-Button-Clicking-Game/ yoxlaya biləcəyiniz bir linkdir. Bu oyun Alkeim -in təkmilləşdirilmiş bir versiyasıdır. Bu bir
Arduino Flappy Bird - Arduino 2.4 "TFT Toxunma Ekranı SPFD5408 Quş Oyunu Layihəsi: 3 addım
Arduino Flappy Bird | Arduino 2.4 "TFT Toxunma Ekranı SPFD5408 Quş Oyunu Layihəsi: Flappy Bird bir neçə il ərzində çox populyar bir oyun idi və bir çox insanlar öz yolu ilə yaratdılar, mən də Arduino ilə flappy quşun mina versiyasını və 2.4 'TFT -ni yaratdım. Dokunmatik ekran SPFD5408, buna görə başlayaq
Space Race: Uşaqlarla etmək üçün sadə Arduino Clicker Oyunu: 7 addım
Space Race: Uşaqlarla Birlikdə Olan Arduino Sadə Oyun: Bu gün necə işlədiyini göstərən bir video yükləyirəm! Uşaqlarla birlikdə hazırlana bilən və sonradan tək başına oyuncaq olaraq zövq ala biləcəyiniz bir yer mövzulu təlimatla əylənin. Onlara əməkdaşlıq haqqında tarix öyrətmək üçün bir vasitə kimi istifadə edə bilərsiniz
KerbalController: Roket Oyunu Kerbal Space Proqramı üçün Xüsusi İdarəetmə Paneli: 11 Addım (Şəkillərlə)
KerbalController: Roket Oyunu üçün Xüsusi İdarəetmə Paneli Kerbal Space Proqramı: Niyə bir KerbalController qurmalısınız? Yaxşı ki, düymələri basmaq və fiziki açarları atmaq siçanınıza basmaqdan daha əhəmiyyətli hiss edir. Xüsusilə böyük bir qırmızı təhlükəsizlik açarı olduqda, əvvəlcə qapağı açmalısınız, açarı vurun
TRASH ROCKS - Geri çevrilməyən zibilləri aradan qaldırın: 8 addım
TRASH ROCKS - Geri dönüşümsüz zibili yox edin: Zibil qayası etmək üçün əvvəlcə bir torba balıq torundan tikilir. Zibil ilə doldurulur və sementlə suvaqlanır. Yaranan qabıqlar bənzərsiz formaya malikdir və çox təbii görünür. Zibil qayaları estetik baxımdan xoş və konstruktivdir