Mundarija:

Makecode Arcade bilan GameGo -da cheksiz darajadagi platformer: 5 qadam (rasmlar bilan)
Makecode Arcade bilan GameGo -da cheksiz darajadagi platformer: 5 qadam (rasmlar bilan)

Video: Makecode Arcade bilan GameGo -da cheksiz darajadagi platformer: 5 qadam (rasmlar bilan)

Video: Makecode Arcade bilan GameGo -da cheksiz darajadagi platformer: 5 qadam (rasmlar bilan)
Video: Getting Started with Microsoft MakeCode Arcade 2024, Noyabr
Anonim
Image
Image

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.

Ushbu maqolada biz cheksiz tasodifiy darajadagi platformer o'yinini yaratmoqchimiz. Platformerda o'yinchi boshqaradigan belgi to'siqlardan qochib, to'xtatilgan platformalar orasidan sakrab o'tishi kerak. Atrof -muhit ko'pincha balandligi o'zgarib turadigan notekis erlarni o'z ichiga oladi. O'yinchi tez -tez balandlikka va sakrash masofasiga nazorat qiladi, bu ularning xarakterini o'limga olib kelishiga yo'l qo'ymaslik yoki kerakli sakrashlarni o'tkazib yubormaslik uchun. Biz bu elementlarning barchasini amalga oshiramiz, shuningdek, oxirgi darajaga yetganimizda yangi darajalarni yaratadigan maxsus funktsiyani qo'shamiz. Boshlaylik!

Ta'minotlar

GameGo

1 -qadam: Qahramon

Qahramon
Qahramon

Birinchi qadam sifatida biz alter-egoimizni yaratamiz. Mening rasm chizish mahoratim juda yomon, shuning uchun men galereyadan birini ishlatishga qaror qildim;) Oldingi o'yindan farqli o'laroq, bu platformerda bizning o'ynaydigan xarakterimiz faqat chapga va o'ngga harakat qila oladi, shuningdek sakrashi mumkin. Shunday qilib, bosh qahramon uchun ikki xil sprite bo'lishning o'rniga, bu safar bittasi kifoya qiladi - biz yo'nalishni o'zgartirganda shunchaki sprite tasvirini aylantirishimiz mumkin.

Birinchi narsa - fon va kafel xaritasini qo'shish. Men 32x8 uzunlikdagi plitkali xaritani tanladim - birinchi bosqichda biz uni skrinshot 2da bo'lgani kabi qo'lda chizamiz. So'ngra biz mySprite bilan o'ynaladigan xarakterimizni qo'shamiz.. Shuningdek, biz kamerani o'ynaydigan belgi bilan harakatlanishga va uning chap va o'ng harakatini boshqarishga o'rnatdik - biz vy harakat tezligini 0 ga o'rnatamiz, chunki bizning belgimiz xaritada y yo'nalishi bo'ylab erkin suzolmasligi kerak. Tugma bosilgan ikkita blokni qo'shing, biri chap tugma uchun, ikkinchisi o'ng tomonda. Chap tugma bosilganda, biz tugmani bosishdan oldin yo'nalishimiz "chapda" qolganligini tekshiramiz. Agar shunday bo'lsa, biz chapga borishda davom etamiz. Agar shunday bo'lmasa, biz qahramonimizning sprite tasvirini o'zgartirishimiz kerak. O'ng harakat uchun ham xuddi shunday mantiq.

Hozircha hamma narsa yaxshi, faqat muammo bizning qahramonimiz hech qanday to'siqni engib o'tolmaydiganga o'xshaydi. Shunday qilib, biz sakrashni qo'shishimiz kerak. Biz tugmachalarni yuqoriga bosish uchun boshqaruv elementlarini kuzatib boramiz va u aniqlanganda biz o'zgaruvchan sakrashni 1 ga o'rnatamiz, vaqtni sakrash harakatlarining boshlanishini qayd etamiz va belgining sprite tezligini -200 ga (yuqoriga) o'rnatamiz. Belgilangan vaqtdan keyin biz tezlikni 200 ga o'rnatamiz (pastga), shuning uchun bizning qahramonimiz osmonga raketa sifatida o'q otmaydi.

O'ylaymanki, biz hozir qiyinchiliklarga munosib qahramon yaratdik! Xo'sh, qiyinchilik qayerda?

2 -qadam: Dushmanlar

Dushmanlar
Dushmanlar

Biz dushmanlarning spritlarini saqlash uchun massiv tuzilmasidan foydalanamiz. Dushmanlar uchun biz bir oz yorliq olamiz va ko'rshapalaklardan foydalanamiz:) koronavirus ma'lumoti emas, shunchaki ko'rshapalaklar ucha oladi, shuning uchun biz o'ynaydigan xarakterimiz kabi ular uchun tortishish kuchini "simulyatsiya qilish" shart emas. Yangi yaratilgan ko'rshapalaklarni tasodifiy paydo bo'ladigan plitkaga (ozgina oq belgi bilan belgilangan) joylashtirish va ularning vx tezligini -10 ga (asta -sekin o'ngga siljish) o'rnatish uchun yaratilgan "Dushman" blokli sprite -dan foydalaning. Keyin har 2000 milodiy blokda o'yinni yangilashda biz dushmanlarning har bir elementini takrorlaymiz va ularning yo'nalishini tasodifiy o'zgartiramiz, agar kerak bo'lsa, ko'rshapalaklar spritesini aylantiramiz (harakat yo'nalishidagi o'zgarishlarni aks ettirish uchun). Nihoyat, biz boshqa turdagi "Dushman" bloklari bilan bir xil turdagi O'yinchining bir -biriga o'xshashligini qo'shamiz, bu erda biz o'yinchi urilganligini oddiy tekshiramiz. Agar biz bir umrni olib tashlamasak, bayroqni 1 ga qo'ying (urildi) va taymerni ishga tushiring. So'nggi zarba vaqtidan 500 ms o'tgach, biz bayroqchani 0 ga qaytaramiz. O'yinchi dushman bilan to'qnashgandan keyin qimmatbaho hayotini yo'qotmasligi uchun shunday qilamiz.

Keling, bizning ahvolimizni tekshirib ko'ramiz. Albatta, hamma ko'rshapalaklar uchib, bizning o'yinchimizni tishlab, sahna jonli ko'rinadi. Endi bizga qahramonlik ishlarini bajarish uchun qurol kerak!

3 -qadam: Qurol

Qurol
Qurol

Qurol uchun men Nintendo -dan ikkita chipmunk birodarlar haqidagi o'yindan ilhom oldim:) Keling, sandiq spritlarini dushmanlarni qo'shish bilan bir xil darajaga qo'shaylik. Shuningdek, biz has_crate o'zgaruvchisini -1 ga boshlaymiz, bu bizning xarakterimiz sandiqqa ega emasligini ko'rsatadi. Bir xil turdagi o'yinchi boshqa turdagi oziq -ovqat bloklari bilan bir -biriga to'g'ri kelganda, biz sandiqni ushlab turamizmi yoki yo'qligini tekshiramiz, agar bo'lmasa, biz has_crate o'zgaruvchisini ro'yxatdagi sandiq sprite indeksiga o'rnatamiz. Keyin o'yinni yangilash blokida biz o'yinchi spriti bilan birga harakat qilamiz va agar A tugmasi bosilsa, biz sandiqning vx tezligini 1200 yoki -1200 ga o'zgartiramiz (belgi harakat yo'nalishiga qarab). Shuningdek, biz has_crate o'zgaruvchisini yana -1 ga o'rnatdik va hozircha havoga ko'tarilgan sandiqning sprite turini Projectile ga o'zgartirdik.

Nihoyat, biz qutilar dushmanlarni ishga tushirganda yo'q qilishimiz kerak (lekin dushmanlar tasodifan sandiqqa yiqilib tushganda emas! Shuning uchun biz oziq-ovqat mahsulotlarini yozish va uni ishga tushirilganda uni "Marmar" ga o'zgartirish) va urish paytida o'zimizni yo'q qilishimiz kerak. devor. Buning uchun biz boshqa "Sprite" turdagi "Dushman" bloklari bilan bir xil turdagi "Projectile" ning bir -biriga mos kelishini ishlatamiz - bu holda biz ikkala spritni ham yo'q qilamiz va ochkolarni bittaga ko'taramiz. Agar Projectile devorga tegsa, biz uning spritini buzamiz.

Deyarli tayyor! O'yin hozir o'ynaladi, lekin hech qanday qiyinchilik yo'q - faqat bitta daraja va bu juda oddiy. Biz qo'lda ko'proq darajalarni yaratishimiz yoki bu darajalarni avtomatik ravishda ishlab chiqaradigan algoritmni yozishimiz mumkin edi, lekin ular, albatta, inson qo'li bilan yaratilgan darajalarga o'xshamaydi.

4 -qadam: Cheksiz sarguzashtlar

Cheksiz sarguzashtlar
Cheksiz sarguzashtlar
Cheksiz sarguzashtlar
Cheksiz sarguzashtlar
Cheksiz sarguzashtlar
Cheksiz sarguzashtlar

Tasodifiy darajadagi ishlab chiqarish funktsiyasi dastlab biroz qo'rqinchli ko'rinadi, lekin bu algoritmik ravishda yangi darajani yaratish uchun oddiy bosqichlar ketma -ketligi. Birinchidan, biz o'z xarakterimizni yangi darajaga ko'tarish uchun g'amxo'rlik qilamiz - o'yinchining bir -birining ustiga qo'yilgan turini ishlatib, biz eshik eshigidan yangi darajadagi tetik sifatida foydalanamiz. Generate_level funktsiyasida biz satr, col va tasodif o'zgaruvchilarini ishga tushiramiz. Bundan tashqari, biz yangi plitka xaritasini yaratamiz, avvalgidek, lekin bo'sh. Bu erda kichik bir ogohlantirish bor - tilemap satrida… col… blokida foydalanish uchun, tilemap bu maxsus plitalarga ega bo'lishi kerak - bu biroz sezgir va Makecode -dagi xato bo'lishi mumkin. Shunday qilib, sizga kerak bo'lgan narsa - bu xaritani yaratish, siz xohlagan barcha plitka turlarini tasodifiy avlodga qo'yish va keyin ularni o'chirish.

Biz qo'lda birinchi plitka (0x6) va o'yinchini ustiga qo'yamiz. Keyin biz keyingi bosqichni 30 marta takrorlaymiz - keyingi bosqich - bu to'g'ri ustunli tekshiruvlarning oddiy seriyasi bo'lib, ular bizni keyingi ustun 1) oldingi daraja bilan bir xilligini 2) bir yuqoriga yoki 3) bir pastga. Keyingi plitka lava plitasi bo'lish ehtimoli juda kichik - biz ularning ko'pini xohlamaymiz! Har bir plitka yaratilgandan so'ng, biz uning ostidagi bo'shliqni lava bilan to'ldiramiz - shunchaki go'zallik uchun. Oxirgi qadam sifatida biz dushmanlar va sandiqlarni qo'shamiz va ularni tasodifiy g'isht plitalari ustiga qo'yamiz.

5 -qadam: Sarguzasht boshlanadi

Sarguzasht boshlanadi
Sarguzasht boshlanadi

Voila! Biz platformerimizni tugatdik va bizning qahramonimiz cheksiz sarguzashtga borib, ko'rshapalaklarni yengib, sandiqlarni vayron qilishi mumkin. Agar siz muammolarga duch kelsangiz, kodni bizning GitHub omboridan yuklab olishingiz mumkin.

Bu shunchaki reja va ba'zi yaxshilanishlar bo'lishi mumkin, masalan, har xil turdagi dushmanlar, bonuslar, yaxshi darajadagi avlod va boshqalar. 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.

TinkerGen MARK (Make A Robot Kit) uchun Kickstarter kampaniyasini yaratdi, bu kodlash, robototexnika, sun'iy intellektni o'rgatish uchun robot to'plami!

Tavsiya: