Mündəricat:
- Təchizat
- Addım 1: Başlat və Round_setup Funksiyalarında
- Addım 2: Oyun axını
- Addım 3: Oyun 1: AI Rəqibi
- Addım 4: Oyun 2: Çox Oyunçu Simulyatoru
- Addım 5: Oyun 3: Jacdac Multiplayer
- Addım 6: Cthulhu Mübarizəsi Başlasın
Video: (Multiplayer) Makecode Arcade ilə GameGo -da mübarizə: 6 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:43
GameGo, TinkerGen STEM təhsili tərəfindən hazırlanmış Microsoft Makecode uyğun retro oyun portativ konsoludur. STM32F401RET6 ARM Cortex M4 çipinə əsaslanır və STEM müəllimləri və ya retro video oyunları yaratmaqdan zövq alan insanlar üçün hazırlanmışdır. Bu təlimatı izləyib oyunu Makecode Arcade simulyatorunda sınayaraq GameGo -da işlədə bilərsiniz.
Bir platformer oyunu və Battle City Remake hazırlamaq üzərində əlimizi sınamadan əvvəl dərc etdiyimiz məqalələrdə. Bu dəfə iki GameGo'yu bir araya gətirmək və oyunçuların çox oyunçu döyüş oyununda üstünlük üçün mübarizə aparmaq üçün Jacdac interfeysindən istifadə etmək istədim. Təəssüf ki, Jacdac multiplayer üçün blok proqramlaşdırmasının beta mərhələsində olduğunu və bəzi səhvləri olduğunu öyrəndim - hələ də sadə oyunlar etmək mümkündür, amma döyüş oyunum üçün heç bir şans yoxdur. Beləliklə, bu təlimatda oyunun üç versiyasını dərc edirəm (buna "Cthulhu Combat" adını verdim:))
- sadə AI rəqibi olan tək oyunçu versiyası
- Arcade simulyasiyasında oynamaq üçün çox oyunçu versiyası
- Jacdac ilə çox oyunçu versiyası (yarımçıq, daha sonra yenilənəcək)
Təchizat
GameGo
Microsoft Makecode Arcade
Addım 1: Başlat və Round_setup Funksiyalarında
Bir oyunçunun oyununun kodlaşdırılmasını ətraflı təsvir edəcəyəm və sonrakı addımlarda bunun necə ediləcəyini müzakirə edəcəyik
a) çox oyunçu simulyatoru
b) Jacdac çox oyunçu.
Kafel xəritəsini qaranlıq zindana qoyaraq və oyunçu və AI botu üçün sprite yaratmağa başlayırıq - hər ikisi də Oyunçu növünə aid olacaq. Y -ox sürətini 600 -ə qoyduq - atladıqdan sonra uçmayacaqlar. Round_setup funksiyasına zəng etmədən əvvəl mərmi botdan və oyunçudan da işə salırıq. round_setup funksiyası bizim üçün yeni dəyirmi hazırlıq işini görür - bunu bir funksiya etməyimizin səbəbi oyunda cəmi 3 tur ola biləcəyi və eyni kodu təkrarlamamaq istədiyimizdir. Bu funksiyada əvvəlcə oyunçulardan birinin 2 qələbə qazandığını yoxlayırıq - əgər bu şərt Doğru olaraq qiymətləndirilirsə, oyun bitdi. Hər iki oyunçunun ikidən az qələbəsi varsa, round_num dəyişənini bir artırırıq və oyunçuları başlanğıc nöqtələrinə yerləşdiririk, həyatlarını 100 -ə çatdırırıq və yeni bir turun başladığını elan edirik.
Addım 2: Oyun axını
Bu oyunda dünyanın özü statikdir və oyun axını oyunçuların hərəkətlərinə bağlıdır. Dörd blokda, oyun qaydalarının çoxunu təyin edirik, bu bloklar bunlardır: yuxarı düyməsinə basıldı, aşağı düyməsinə basıldı, A düyməsinə basıldı və B düyməsinə basıldı. Bu blokların hər birinə nəzər salaq.
yuxarı düyməsinə basıldıqda - ikiqat atlama məntiqi. Atlama düyməsini 3 dəfədən az basmışıqsa, oyunçunun sürətini - 140 (yuxarıya doğru) olaraq təyin edirik. Oyunçumuz 600 -ə qədər sürətlənməyə malikdir, buna görə də atladığımız zaman sürətimiz sürətlə azalacaq. 0 -a çatdıqda (şaquli oxda hərəkət etmədən) yenidən jump_countu 0 olaraq təyin edirik.
aşağı düyməsinə basıldı - hücum qalxanı məntiqi. Aşağı düyməyə basıldığı təqdirdə oyunçu imicini "qalxanlı" olaraq dəyişir və ekranlı dəyişəni 1 olaraq təyin edir.
A düyməsinə basıldıqda - mərmi atın. Bu olduqca özünü izah edən bir şeydir.
B düyməsinə basıldıqda - tətbiqdə qalxana bənzəyən yaxın döyüş.
Oyunçuların spritlərinin və onların qorunan/hücum edən dəyişənlərinin görüntülərini hər 500 ms -də 0 -a təyin edirik. Hər bir hərəkət üçün müstəqil taymerlər təyin edə bilərdik, amma sadəlik naminə yalnız əsas oyun yeniləmə döngəsindən istifadə edəcəyik.
Buradakı qazanma şərtləri olduqca asandır - oyunçu həyatı 0 -a çatdıqda, digər oyunçu turu qazandı, sonra oyunçunun qalibiyyət sayını dəyişən olaraq saxlayırıq.
Nəhayət, dəyişən hücum ziyanını və yaxın döyüş hücumunu idarə edən iki blok var. Hər birində sprite toqquşmasını yoxlayırıq və hücum edən oyunçu üçün qorunan/hücum dəyişən 0/1 olaraq təyin olunur.
Addım 3: Oyun 1: AI Rəqibi
İlk oyunda ikinci oyunçu olmaq üçün nisbətən sadə bir AI rəqibi yaradacağıq. Hər 200 ms -də oyun yeniləməsi içərisində əvvəlcə oyunçu ilə AI arasındakı məsafə yoxlamasını aparırıq - 20 -dən az olarsa, yaxınlaşma hücum şansını 30 -a və hücum şansı 30 -a qaldıraraq AI -ni yaxın döyüş rejiminə qoyduq. Məsafə daha yüksəkdirsə 20 -dən çox yaxınlaşma hücumu şansını sıfıra qoyduq (yaxınlaşma hücumunda pint yoxdur, oyunçu çox uzaqda olduğu üçün) və şansını 70 -ə köçürdük. Əməliyyat şansı dəyişənləri təyin edildikdən sonra, bu hərəkətləri göstərilən şanslarla icra etməyə davam edirik. Özünüz bu sadə AI -yə qarşı oynamağa cəhd etsəniz, davranışının çox sadə olmasına baxmayaraq, ona qarşı qalib gəlməyin asan olmadığını görəcəksiniz - kompüter nəzarətində olan rəqiblər kimi, əksər hallarda saniyədə daha çox hərəkət edə biləcəyi üçün qalib gəlir. insan oyunçu.
Kodlaşdırarkən ilişib qalmısınızsa, bu layihə üçün bütün kodu GitHub depomuzda yükləyə və Makecode Arcade -də aça bilərsiniz.
Addım 4: Oyun 2: Çox Oyunçu Simulyatoru
Simulyasiyada iki oyunçu üçün oyun variantı tək oyunçu versiyasına çox oxşardır, ancaq AI davranış blokunu dörd oyunçu 2 düyməsinə basılan dörd blokla əvəz edirik - bu blokların içərisində eyni blokların məzmununu 1 oyunçu üçün əks etdirir. Hansı dəyişiklikləri etməli olduğunuzu daha yaxşı başa düşmək üçün ekran görüntüsünə baxın. Bundan başqa, başlanğıc funksiyasında düymələri olan hərəkət edən oyunçu 2 -ni əlavə etməliyik və iki oyunçunun son ekranını LOSE əvəzinə WIN -ə dəyişməliyik.
Addım 5: Oyun 3: Jacdac Multiplayer
Bu forum mövzusunda Makecode arcade blokları olan Jacdac çox oyunçusunun icma tətbiqini tapdım
forum.makecode.com/t/new-extension-real-mu…
Orada nümunə oyunu sınadım (Space Invaders) və çox yaxşı işlədiyini gördüm. Təəssüf ki, Cthulhu Combatın oyun mexanikası bir çox dəyişəndən istifadə edir və görünür ki, Real Multiplayer uzantıları hələ də dəyişənlərin sinxronizasiyasını dəstəkləmir - buna görə işə başladım, iki oyunçunun hərəkətləri cihazlar arasında sinxronlaşdırılır, amma həyat bunu edə bilməz. Rəqiblərin cihazına düşməyin. Həm də mərmi mexanikasında səhv bir şey var, mərmilər divara dəydikdən sonra yoxa çıxmır, bu da təxminən 10 mərmi atıldıqdan sonra oyunun əlaqəni kəsməsinə səbəb olur.
Bunu sınamaq üçün GitHub depomuzdan-p.webp
Addım 6: Cthulhu Mübarizəsi Başlasın
Sadə döyüş oyunumuzda hələ də bir çox irəliləyişlər edilə bilər - məsələn, daha mürəkkəb AI davranışı əlavə edə bilərsiniz və ya düymə birləşmələri və/və ya animasiya ardıcıllığı əlavə etmək üçün uzantıdan istifadə edə bilərsiniz. GameGo və Makecode Arcade ilə öz oyunlarınızı proqramlaşdırarkən uğurlar və əylənin.
Oyunun təkmilləşdirilmiş bir versiyasını edirsinizsə, aşağıdakı şərhlərdə paylaşın! GameGo və istehsalçılar və STEM müəllimləri üçün digər avadanlıqlar haqqında daha çox məlumat üçün https://tinkergen.com/ saytımızı ziyarət edin və bülletenimizə abunə olun.
Tövsiyə:
Makecode Arcade ilə GameGo -da Sonsuz Səviyyələri olan Platformer: 5 Addım (Şəkillərlə)
Makecode Arcade ilə GameGo -da Sonsuz Səviyyə ilə Platformer: GameGo, TinkerGen STEM təhsili tərəfindən hazırlanmış Microsoft Makecode uyğun retro oyun portativ konsoludur. STM32F401RET6 ARM Cortex M4 çipinə əsaslanır və STEM müəllimləri və ya retro video oyunu yaratmaqdan zövq alan insanlar üçün hazırlanmışdır
Koronavirusla Mübarizə: Sadə Əl Yuma Zamanlayıcısı: 8 Addım (Şəkillərlə birlikdə)
Koronavirusla Mübarizə: Sadə Əl Yuma Zamanlayıcısı: Dünyadakı mövcud pandemiya ilə vəziyyət olduqca qorxunc görünür. Corona virusu hər yerdə ola bilər. Bildiyimizə görə, heç kim heç bir simptom göstərmədən virusu bir neçə gün daşıya bilər. Həqiqətən qorxuncdur, amma çox qorxmayın
GameGo -da Makecode Arcade ilə Battle City Remake: 4 Addım (Şəkillərlə)
Makecode Arcade ilə GameGo'da Battle City Remake: GameGo, TinkerGen STEM təhsili tərəfindən hazırlanmış Microsoft Makecode uyğun retro oyun portativ konsoludur. STM32F401RET6 ARM Cortex M4 çipinə əsaslanır və STEM müəllimləri və ya retro video yaratmaqla əylənməyi sevən insanlar üçün hazırlanmışdır
Suya Qarşı Mübarizə: 4 addım
Anti-Water Waster: Evimizdə, kranı həddindən artıq uzun müddət işləyən bir su israfçısı iddia edir. Bu Anti-Water Waster, su israf edən bir insana incə bir xatırlatma olaraq hazırlanmışdır
Laptop/Notbukun Aşırı Isınması ilə Necə Mübarizə Edilir: 8 addım
Laptop/Notbukun Aşırı Isınması ilə necə məşğul olmaq olar: Laptopun həddindən artıq istiləşməsi ciddi ziyana səbəb ola bilər. Ani bağlanma uğursuzluqları və ya təsadüfən görünən ölüm ekranları, notebookunuzu boğduğunuz anlamına gələ bilər. Yastığımdakı soyuducu fanatlarını bağladığımda son dəftərim sanki yatağımda əridi