Obsah:

Platforma s nekonečnými úrovňami v GameGo s Makecode Arcade: 5 krokov (s obrázkami)
Platforma s nekonečnými úrovňami v GameGo s Makecode Arcade: 5 krokov (s obrázkami)

Video: Platforma s nekonečnými úrovňami v GameGo s Makecode Arcade: 5 krokov (s obrázkami)

Video: Platforma s nekonečnými úrovňami v GameGo s Makecode Arcade: 5 krokov (s obrázkami)
Video: Теория пылающего пердака, хроники боли #3 Прохождение Cuphead 2024, Júl
Anonim
Image
Image

GameGo je retro herná prenosná konzola kompatibilná s Microsoft Makecode vyvinutá spoločnosťou TinkerGen STEM education. Je založený na čipe STM32F401RET6 ARM Cortex M4 a je vyrobený pre pedagógov STEM alebo len pre ľudí, ktorí sa radi zabávajú vytváraním retro videohier. Môžete postupovať podľa tohto tutoriálu a vyskúšať si hru v simulátore Makecode Arcade a potom ju spustiť na GameGo.

V tomto článku vytvoríme plošinovku s nekonečným počtom náhodne generovaných úrovní. V plošinovke musí postava ovládaná hráčom skákať a šplhať medzi zavesenými plošinami a vyhýbať sa prekážkam. Prostredia často obsahujú nerovný terén rôznej výšky, po ktorom treba prejsť. Hráč má často určitú kontrolu nad výškou a vzdialenosťou skokov, aby nenechal svoju postavu padnúť na smrť a nevynechal potrebné skoky. Implementujeme všetky tieto základné prvky a tiež pridáme vlastnú funkciu, ktorá bude generovať nové úrovne, keď sa dostaneme na koniec tej poslednej. Poďme začať!

Zásoby

GameGo

Krok 1: Hrdina

Hrdina
Hrdina

Ako prvý krok si vytvoríme svoje alter ego. Moje kresliace schopnosti sú dosť zlé, a tak som sa rozhodol použiť jednu z galérie;) Na rozdiel od predchádzajúcej hry, ktorú sme vytvorili, v tejto plošinovke sa naša hrateľná postava môže pohybovať iba doľava a doprava a tiež môže skákať. Takže namiesto toho, aby mal hlavný hrdina dvoch rôznych škriatkov, tentoraz stačí jeden - keď zmeníme smer, môžeme len prevrátiť imidž sprite.

Prvá vec, ktorú musíte urobiť, je pridať mapu pozadia a dlaždíc. Vybral som mapu s dlhými dlaždicami 32 x 8 - pre prvú úroveň ju nakreslíme ručne, ako na obrázku 2. Potom pridáme našu hrateľnú postavu so sadou mySprite na sprite druhu Player block a umiestnime ju na vrch dlaždice 0-5. Nastavili sme tiež kameru, aby sa pohybovala s hrateľnou postavou a ovládala jej pohyb vľavo a vpravo - nastavíme rýchlosť vy pohybu na 0, pretože naša postava by sa nemohla voľne vznášať na mape v smere y. Pridajte dva bloky … stlačené tlačidlom, jeden pre ľavé tlačidlo a jeden pre pravé. Keď stlačíte ľavé tlačidlo, pred stlačením tlačidla skontrolujeme, či bol náš smer „vľavo“. Ak by to tak bolo, pokračujeme stále vľavo. Ak by to tak nebolo, musíme prevrátiť imidž škriatka našej postavy. Podobná logika pre pravý pohyb.

Zatiaľ všetko dobré, zdá sa, že jediným problémom je, že náš hrdina nemôže prekonať žiadnu prekážku. Musíme teda pridať skákanie. Monitorujeme stlačenie tlačidla hore a keď je detekované, nastavíme variabilné skákanie na 1, zaznamenáme čas, kedy sa pohyby pri skákaní začali a nastavíme rýchlosť sprite postavy vy na -200 (stúpa). Potom po určenom časovom období nastavíme rýchlosť 200 (klesá), aby náš hrdina nevystrelil k oblohe ako raketa.

Myslím, že sme teraz vytvorili hrdinu hodného tejto výzvy! No, kde je výzva?

Krok 2: Nepriatelia

Nepriatelia
Nepriatelia

Na uloženie škriatkov nepriateľov použijeme štruktúru polí. Pre typ nepriateľov použijeme malú skratku a použijeme netopiere:) nie je odkaz na koronavírus, sú to len netopiere, ktoré môžu lietať, a preto pre nich nebudeme musieť „simulovať“gravitáciu, ako to robíme s našou hrateľnou postavou. Použite na vytvorený sprite druhu Enemy block na umiestnenie novo vytvorených netopierov na náhodný poter (označený malou bielou značkou) a nastavte ich rýchlosť vx na -10 (pomaly unášaná doprava). Potom v rámci aktualizácie hry každých 2000 ms blok iterujeme každou položkou nepriateľského zoznamu a náhodne zmeníme ich smer, pričom v prípade potreby tiež preklopíme škriatkov (aby odrážali zmenu smeru pohybu). Nakoniec pridávame sprite of kind Prehrávač sa prekrýva s blokom otherSprite of kind Enemy, kde robíme jednoduchú kontrolu, či už bol hráč zasiahnutý. Ak nie, odpočítame jeden život, nastavíme príznak zásahu na 1 (bol zasiahnutý) a spustíme časovač. Akonáhle uplynie 500 ms od posledného času zásahu, zmeníme zásah vlajky späť na 0. Robíme to, aby sa hráč po strete s nepriateľom vyhýbal strate príliš veľa svojich cenných životov.

Pozrime sa, ako sa máme. Scéna určite vyzerá živšie, keď všetky netopiere poletujú a hryzú nášho hráča. Teraz potrebujeme zbraň, aby sme mohli vykonávať naše hrdinské činy!

Krok 3: Zbraň

Zbraň
Zbraň

Pokiaľ ide o zbraň, čerpal som inšpiráciu zo starej hry Nintendo o dvoch bratoch veveričích:) Pridajme na úroveň škriatkovitých škriatkov, podobne ako to robíme pri pridávaní nepriateľov. Inicializujeme tiež premennú has_crate na -1, čo naznačuje, že naša postava nenesie prepravku. V hre sprite of kind sa hráč prekrýva s iným blokom potravín Sprite of kind, skontrolujeme, či už prepravku držíme, a ak nie, nastavíme premennú has_crate na index sprite prepravky v zozname. Potom v bloku aktualizácie hry presunieme tento sprite spolu s spriteom hráča a ak stlačíte tlačidlo A, zmeníme rýchlosť vx prepravky na 1200 alebo -1200 (v závislosti od smeru pohybu postavy). Tiež sme znova nastavili premennú has_crate na -1 a zmenili sme typ sprite prepravky, ktorá bola práve vypustená do vzduchu, na Projectile.

Nakoniec potrebujeme, aby prepravky pri spustení skutočne zničili nepriateľov (nie však vtedy, keď nepriatelia len tak náhodne narazia na prepravku! Preto sme prepravky priradili k písaniu jedla a pri spustení ho zmenili na projektil) a pri zničení sa zničili. stena. Na to použijeme ďalší na sprite druhu Projektil sa prekrýva s blokom otherSprite of kind - v takom prípade zničíme oboch škriatkov a zvýšime skóre o jeden. Ak projektil narazí na stenu, zničíme jeho škriatka.

Teraz takmer hotové! Hru je teraz možné hrať, ale stále nie je žiadna výzva - iba jedna úroveň a v tom pomerne jednoduchá. Mohli by sme vytvoriť viac úrovní ručne alebo napísať algoritmus, ktorý by tieto úrovne generoval automaticky pre nás - aj keď samozrejme nebudú také pekné ako úrovne vyrobené ľuďmi.

Krok 4: Nekonečné dobrodružstvá

Nekonečné dobrodružstvá
Nekonečné dobrodružstvá
Nekonečné dobrodružstvá
Nekonečné dobrodružstvá
Nekonečné dobrodružstvá
Nekonečné dobrodružstvá

Funkcia generovania náhodných úrovní vyzerá na prvý pohľad strašidelne, ale je to skutočne jednoduchá séria krokov na algoritmické generovanie novej úrovne spôsobom, akým je nová úroveň prístupná pre hrateľnú postavu. Najprv sa postaráme o to, aby sa naša postava dostala na novú úroveň - pomocou sprite of player sa prekrýva … na mieste - použijeme dlaždicu portálových dverí ako spúšťač na novú úroveň. Vo funkcii generate_level inicializujeme premenné riadok, stĺpček a náhoda. Tiež vytvoríme novú mapu dlaždíc, rovnakej veľkosti ako predtým, ale prázdnu. Tu je však malá výhrada - na to, aby ste v súbore tilemap mohli použiť súbor … col … col … blok, musí mať tilemap tieto konkrétne dlaždice - to je trochu intuitívne a môže ísť o chybu v programe Makecode. Čo teda budete musieť urobiť, je vytvoriť tilemap, vložiť všetky typy dlaždíc, ktoré chcete použiť, do náhodného generovania A potom ich vymazať.

Ručne položíme prvú dlaždicu (0x6) a hráča na ňu. Potom zopakujeme ďalší krok 30 -krát - ďalším krokom je jednoduchá séria kontrol True -False, ktoré rozhodujú o tom, či nás nasledujúci stĺpec bude 1) rovnaká úroveň ako predchádzajúci 2) jeden hore alebo 3) jeden nadol. Existuje tiež veľmi malá pravdepodobnosť, že ďalšou dlaždicou bude lávová dlaždica - nechceme ich príliš veľa! Po každej vygenerovanej dlaždici vyplníme priestor pod ňou lávou - len kvôli peknosti. Ako posledný krok pridáme nepriateľov a debny a umiestnime ich na vrch náhodných spawnovacích dlaždíc.

Krok 5: Dobrodružstvo začína

Dobrodružstvo začína
Dobrodružstvo začína

Voila! Dokončili sme plošinovku a náš hrdina sa môže vydať na nekonečné dobrodružstvo, pričom porazil netopiere a zničil debny. ak máte problémy, môžete si stiahnuť kód z nášho úložiska GitHub.

Je to len plán a určite je možné vykonať niekoľko vylepšení, napríklad rôzne druhy nepriateľov, bonusy, lepšie generovanie úrovní a podobne. Ak vytvoríte vylepšenú verziu hry, podeľte sa o ňu v nižšie uvedených komentároch! Viac informácií o GameGo a inom hardvéri pre tvorcov a pedagógov STEM nájdete na našej webovej stránke https://tinkergen.com/ a prihláste sa k odberu nášho spravodajcu.

TinkerGen vytvoril kampaň Kickstarter pre MARK (Make A Robot Kit), robotickú súpravu na výučbu kódovania, robotiky, AI!

Odporúča: