Mundarija:

(Ko'p o'yinchi) GameGo -da Makecode Arcade bilan kurash: 6 qadam
(Ko'p o'yinchi) GameGo -da Makecode Arcade bilan kurash: 6 qadam

Video: (Ko'p o'yinchi) GameGo -da Makecode Arcade bilan kurash: 6 qadam

Video: (Ko'p o'yinchi) GameGo -da Makecode Arcade bilan kurash: 6 qadam
Video: XITOYLIKLARNI SIRI OCHILDI \ PRO O’YINCHI BO’LISH \ PUBG MOBILE SIRLARI 2024, Noyabr
Anonim

GameGo - bu TinkerGen STEM ta'limi tomonidan ishlab chiqilgan, Microsoft Makecode -ga mos keladigan retro o'yinli portativ konsoli. U STM32F401RET6 ARM Cortex M4 chipiga asoslangan va STEM o'qituvchilari yoki retro video o'yinlar yaratishni yaxshi ko'radigan odamlar uchun mo'ljallangan. Siz bu qo'llanmani kuzatib, Makecode Arcade simulyatorida o'yinni sinab ko'rishingiz va keyin GameGo -da ishga tushirishingiz mumkin.

Biz e'lon qilgan maqolalarda, biz platformer o'yini va Battle City Remake -ni yaratishda o'zimizni sinab ko'rdik. Bu safar men Jacdac interfeysidan foydalanib, ikkita GameGo'ni bir -biriga ulashni va o'yinchilarga ko'p o'yinchi jangovar o'yinda ustunlik uchun kurashishga ruxsat berishni xohladim. Afsuski, men Jacdac multiplayer uchun blokli dasturlash hozircha beta -bosqichda ekanligini va ba'zi xatolari borligini bilib oldim - hali ham oddiy o'yinlar qilish mumkin, lekin mening jang o'yinim uchun omad yo'q. Shunday qilib, men ushbu ko'rsatmada men o'yinning uchta versiyasini nashr etaman (men uni "Cthulhu Combat" deb ataganman:))

- oddiy AI raqibi bo'lgan bitta o'yinchi versiyasi

- Arja simulyatsiyasida o'ynash uchun ko'p o'yinchi versiyasi

- Jacdac bilan ko'p o'yinchi versiyasi (to'liq emas, keyin yangilanadi)

Ta'minotlar

GameGo

Microsoft Makecode Arcade

1 -qadam: Boshlash va Round_setup funktsiyalarida

Boshlash va Round_setup funktsiyalarida
Boshlash va Round_setup funktsiyalarida

Men bitta o'yinchi o'yinini kodlashni batafsil tasvirlab beraman va keyingi bosqichlarda biz buni qanday qilishni muhokama qilamiz

a) ko'p o'yinchi simulyatori

b) Jacdac ko'p o'yinchi.

Biz plitka xaritasini qorong'i zindonga o'rnatish va o'yinchi va AI bot uchun sprite yaratish bilan boshlaymiz - lekin ikkalasi ham Player turiga tegishli bo'ladi. Biz ularning y o'qi tezligini 600 ga o'rnatdik - ular sakrashdan keyin uchib ketmasin. Shuningdek, round_setup funktsiyasini chaqirishdan oldin biz bot va pleerdan raketalarni ishga tushiramiz. round_setup funktsiyasi biz uchun yangi davra tayyorgarligi haqida g'amxo'rlik qiladi - biz uni funktsiyaga aylantirganimizning sababi shundaki, o'yinda jami 3 ta tur bo'lishi mumkin va biz bir xil kodni takrorlamaslikni xohlaymiz. Bu funktsiyani bajarishdan oldin, biz o'yinchilardan birida 2 ta g'alaba borligini tekshirib ko'ramiz - agar bu shart to'g'ri deb baholansa, o'yin tugadi. Agar ikkala o'yinchi ham ikkitadan kam g'alaba qozonsa, biz round_num o'zgaruvchisini bittaga ko'paytiramiz va o'yinchilarni boshlang'ich joylariga joylashtiramiz, ularning hayotini 100 ga to'ldiramiz va yangi tur boshlanganini e'lon qilamiz.

2 -qadam: O'yin oqimi

O'yin oqimi
O'yin oqimi

Bu o'yinda dunyoning o'zi statik va o'yin oqimi o'yinchilarning harakatlariga bog'liq. To'rt blokda biz o'yin qoidalarining aksariyatini belgilaymiz, bu bloklar: yuqoriga, pastga, A tugmalariga va B tugmalariga bosiladi. Keling, ushbu bloklarning har birini ko'rib chiqaylik.

yuqoridagi tugma bosilgan - ikki marta sakrash mantig'i. Agar biz o'tish tugmachasini 3 martadan kam bosgan bo'lsak, biz o'yinchi tezligini 140 ga o'rnatdik (yuqoriga qarab). Bizning o'yinchi 600 tezlikka ega, shuning uchun biz sakraganimizda tezligimiz tez kamayadi. U 0 ga yetganda (vertikal o'qda harakatlanmaydi), biz jump_count -ni yana 0 ga o'rnatamiz.

pastga tugmasi bosilgan - qalqonsimon qalqoni. Agar pastga tugmasi bosilsa, o'yinchi o'z tasvirini "himoyalangan" qilib o'zgartiradi va himoyalangan o'zgaruvchini 1 ga o'rnatadi.

tugmachada A bosildi - o'q otish. Bu deyarli o'z-o'zidan tushunarli.

B tugmachasida bosilgan - jangovar hujum, amalga oshirishda qalqonga o'xshash.

Biz o'yinchilarning spritlari va ularning himoyalangan/hujumkor o'zgaruvchilari tasvirlarini har 500 msda 0 ga o'rnatdik, har bir o'yinda. Biz har bir harakat uchun mustaqil taymerlarni belgilashimiz mumkin edi, lekin soddalik uchun biz o'yinni yangilashning asosiy tsiklidan foydalanamiz.

Bu erda g'alaba qozonish shartlari juda oson - o'yinchi hayoti 0 ga etganda, boshqa o'yinchi turda g'alaba qozondi, biz o'yinchi yutuqlar sonini o'zgaruvchida saqlaymiz.

Nihoyat, hujum va zarba zarbalarini boshqaradigan ikkita blok mavjud. Ularning har birida biz sprite to'qnashuvini tekshiramiz va agar himoyalangan/hujumchi o'zgaruvchi 0/1 ga o'rnatilgan bo'lsa.

3 -qadam: 1 -o'yin: AI raqibi

1 -o'yin: AI raqibi
1 -o'yin: AI raqibi

Birinchi o'yinda biz ikkinchi o'yinchi bo'lish uchun AIga nisbatan oddiy raqib yaratamiz. Har 200 msda o'yinni yangilashda biz birinchi navbatda o'yinchi va AI o'rtasidagi masofani tekshiramiz - agar 20 dan kam bo'lsa, biz AIni jangovar rejimini 30 va jang imkoniyatini 30 ga ko'tarib, jang rejimini o'rnatamiz. Agar masofa balandroq bo'lsa. 20 dan ortiq, biz jangovar hujum imkoniyatini nolga qo'ydik (jangovar hujumda pint yo'q, chunki o'yinchi juda uzoq) va imkoniyatni 70 ga o'tkazamiz. Harakat ehtimoli o'zgaruvchilari o'rnatilgandan so'ng, biz bu harakatlarni belgilangan imkoniyatlar bilan bajarishni davom ettiramiz. Agar siz o'zingiz bu oddiy AIga qarshi o'ynashga harakat qilsangiz, ko'rasizki, uning xatti -harakati juda sodda, lekin unga qarshi g'alaba qozonish oson emas - ko'pincha kompyuter boshqaradigan raqiblar bilan bo'lgani kabi, u g'alaba qozonadi, chunki u sekundiga ko'proq harakat qila oladi. inson o'yinchisi.

Agar siz kodlashda qolib ketgan bo'lsangiz, ushbu loyihaning GitHub omboridan to'liq kodni yuklab olishingiz va uni Makecode Arcade -da ochishingiz mumkin.

4 -qadam: 2 -o'yin: Ko'p o'yinchi simulyatori

2 -o'yin: Ko'p o'yinchi simulyatori
2 -o'yin: Ko'p o'yinchi simulyatori
2 -o'yin: Ko'p o'yinchi simulyatori
2 -o'yin: Ko'p o'yinchi simulyatori

Simulyatsiya bo'yicha ikkita o'yinchi uchun o'yin varianti bitta o'yinchi versiyasiga juda o'xshaydi, faqat biz AI xatti -harakat blokini to'rtta o'yinchi 2 -tugma bosilgan blok bilan almashtiramiz - bu bloklar ichidagi tarkib bir o'yinchi uchun bir xil bloklar tarkibini aks ettiradi. qanday o'zgartirishlar kiritish kerakligini yaxshiroq tushunish uchun ekran tasvirini ko'ring. Bundan tashqari, biz ham ishga tushirish tugmachalari blokirovka qilingan 2 -o'yinchini qo'shishimiz va ikki o'yinchi uchun oxirgi ekranni LOSE o'rniga WIN -ga o'zgartirishimiz kerak.

5 -qadam: 3 -o'yin: Jacdac ko'p o'yinchi

3 -o'yin: Jacdac ko'p o'yinchi
3 -o'yin: Jacdac ko'p o'yinchi

Men ushbu forum mavzusida Makecode arkada bloklari bilan Jacdac multiplayerining jamoaviy dasturini topdim

forum.makecode.com/t/new-extension-real-mu…

Men u erda (Space Invaders) misol o'yinini sinab ko'rdim va u juda yaxshi ishlayotganini ko'rdim. Afsuski, Cthulhu Combat o'yin mexanikasi juda ko'p o'zgaruvchilardan foydalanadi va aftidan, haqiqiy ko'p o'yinchi kengaytmalari hali ham sinxronlashni qo'llab -quvvatlamaydi - shuning uchun men uni ishga tushirdim, ikkita o'yinchining harakatlari qurilmalarda sinxronlanadi, lekin hayot bunday qila olmaydi. Raqiblar qurilmasini tashlamang. Bundan tashqari, raketa mexanikasida noto'g'ri narsa bor, raketalar devorga urilgandan keyin yo'qolmaydi, bu esa 10 ga yaqin o'q otilganidan keyin o'yin aloqani uzishiga olib keladi.

Siz sinab ko'rish uchun bizning GitHub omboridan-p.webp

6 -qadam: Cthulhu jangini boshlaylik

Cthulhu jangi boshlasin!
Cthulhu jangi boshlasin!

Bizning oddiy jangovar o'yinimizda hali ko'p yaxshilanishlar bo'lishi mumkin - masalan, siz murakkab AI harakatlarini qo'shishingiz yoki tugmalar birikmasi va/yoki animatsiya ketma -ketligini qo'shish uchun kengaytmani ishlatishingiz mumkin. GameGo va Makecode Arcade bilan o'z o'yinlaringizni dasturlashda omad va dam oling.

Agar siz o'yinning takomillashtirilgan versiyasini yaratgan bo'lsangiz, uni quyidagi izohlarda baham ko'ring! GameGo va ishlab chiqaruvchilar va STEM o'qituvchilari uchun boshqa uskunalar haqida ko'proq ma'lumot olish uchun bizning veb -saytimizga tashrif buyuring, https://tinkergen.com/ va bizning axborot byulletenimizga obuna bo'ling.

Tavsiya: