Obsah:

Platforma s nekonečnými úrovněmi na GameGo s Makecode Arcade: 5 kroků (s obrázky)
Platforma s nekonečnými úrovněmi na GameGo s Makecode Arcade: 5 kroků (s obrázky)

Video: Platforma s nekonečnými úrovněmi na GameGo s Makecode Arcade: 5 kroků (s obrázky)

Video: Platforma s nekonečnými úrovněmi na GameGo s Makecode Arcade: 5 kroků (s obrázky)
Video: TOP 4 LIDÉ Z BUDOUCNOSTI, KTEŘÍ NÁS PŘIŠLI VAROVAT 2024, Listopad
Anonim
Image
Image

GameGo je retro herní přenosná konzole kompatibilní s Microsoft Makecode vyvinutá TinkerGen STEM education. Je založen na čipu STM32F401RET6 ARM Cortex M4 a je vytvořen pro pedagogy STEM nebo jen pro lidi, kteří se rádi baví s vytvářením retro videoher. Můžete sledovat tento návod a vyzkoušet si hru v simulátoru Makecode Arcade a poté ji spustit na GameGo.

V tomto článku vytvoříme plošinovou hru s nekonečnými náhodně generovanými úrovněmi. V plošinovce musí postava ovládaná hráčem skákat a šplhat mezi zavěšenými plošinami a vyhýbat se překážkám. Prostředí často obsahuje nerovný terén různé výšky, který je třeba projet. Hráč má často určitou kontrolu nad výškou a vzdáleností skoků, aby se vyhnul tomu, že by jeho postava padla na smrt, nebo by vynechal nezbytné skoky. Implementujeme všechny tyto základní prvky a také přidáme vlastní funkci, která bude generovat nové úrovně, když se dostaneme na konec té poslední. Pojďme začít!

Zásoby

GameGo

Krok 1: Hrdina

Hrdina
Hrdina

Jako první krok vytvoříme naše alter-ego. Moje kreslící schopnosti jsou dost špatné, a tak jsem se rozhodl použít jednu z Galerie;) Na rozdíl od předchozí hry, kterou jsme vytvořili, se v této plošinovce naše hratelná postava může pohybovat pouze doleva a doprava a také může skákat. Takže místo toho, abychom měli pro hlavní postavu dva různé skřítky, tentokrát stačí jeden - můžeme jen převrátit obrázek sprite, když změníme směr.

První věcí, kterou musíte udělat, je přidat mapu pozadí a dlaždic. Vybral jsem mapu s dlouhými dlaždicemi 32x8 - pro první úroveň ji nakreslíme ručně, jako na obrázku 2. Poté přidáme naši hratelnou postavu s nastavením mySprite na sprite of kind Player block a umístíme ji na horní část dlaždice 0-5. Nastavili jsme také kameru, aby se pohybovala s hratelnou postavou a řídila její pohyb vlevo a vpravo - nastavíme rychlost vy pohybu na 0, protože naše postava by se nemohla volně vznášet na mapě ve směru y. Přidejte dva bloky na… stisknuté bloky, jeden pro levé tlačítko, jeden pro pravé. Když je stisknuto levé tlačítko, před stisknutím tlačítka zkontrolujeme, zda byl náš směr „vlevo“. Pokud ano, pokračujeme dále doleva. Pokud by tomu tak nebylo, musíme převrátit obraz naší postavy. Podobná logika pro pravý pohyb.

Prozatím vše v pořádku, zdá se, že jediným problémem je, že náš hrdina nemůže překonat žádnou překážku. Musíme tedy přidat skákání. Budeme monitorovat ovládací prvky pro stisknutí tlačítka nahoru a když je detekováno, nastavíme proměnné skákání na 1, zaznamenáme čas, kdy byly zahájeny pohyby skákání, a nastavíme rychlost sprite postavy vy na -200 (nahoru). Potom po určeném časovém období nastavíme rychlost na 200 (klesání), aby náš hrdina nevystřelil k obloze jako raketa.

Myslím, že jsme nyní vytvořili hrdinu hodného této výzvy! No, kde je výzva?

Krok 2: Nepřátelé

Nepřátelé
Nepřátelé

K uložení skřítků nepřátel použijeme strukturu pole. Pro typ nepřátel si vezmeme malou zkratku a použijeme netopýry:) ne odkaz na koronavirus, prostě netopýři mohou létat, proto pro ně nebudeme muset „simulovat“gravitaci, jako to děláme s naší hratelnou postavou. Pomocí na vytvořený blok sprite of Enemy umístěte nově vytvořené netopýry na dlaždici náhodného potěru (označenou malou bílou značkou) a nastavte jejich rychlost vx na -10 (pomalu unášená doprava). Poté v aktualizaci hry každých 2 000 ms blok iterujeme každou položku nepřátelského seznamu a náhodně měníme jejich směr, přičemž v případě potřeby také převracíme skřítky netopýrů (aby odrážely změnu směru pohybu). Nakonec přidáme sprite of kind Překryv hráče s blokem otherSprite of kind Enemy, kde provedeme jednoduchou kontrolu, zda byl hráč již zasažen. Pokud tomu tak není, odečteme jeden život, nastavíme příznak zásahu na 1 (byl zasažen) a spustíme časovač. Jakmile uplyne 500 ms od doby posledního zásahu, změníme zásah vlajky zpět na 0. Děláme to proto, aby se hráč po srážce s nepřítelem vyhnul ztrátě příliš mnoha cenných životů.

Pojďme se podívat, jak jsme na tom. Scéna rozhodně vypadá živěji, když všichni netopýři létají kolem a kousají našeho hráče. Nyní potřebujeme zbraň, abychom mohli dělat své hrdinské činy!

Krok 3: Zbraň

Zbraň
Zbraň

Pokud jde o zbraň, čerpal jsem inspiraci ze staré hry Nintendo o dvou bratrech veverkách:) Přidejme na úroveň skřítky, podobně jako to děláme s přidáváním nepřátel. Také inicializujeme proměnnou has_crate na -1, což znamená, že naše postava nenese přepravku. Při hře sprite of kind se hráč překrývá s jiným blokem potravin Sprite of kind, zkontrolujeme, zda již bednu držíme, a pokud ne, nastavíme proměnnou has_crate na index sprite bedny v seznamu. Poté v bloku aktualizace hry přesuneme tento sprite společně s sprite hráče a pokud stisknete tlačítko A, změníme rychlost vx bedny na 1200 nebo -1200 (v závislosti na směru pohybu postavy). Také jsme nastavili proměnnou has_crate zpět na -1 a změnili typ sprite bedny, která byla právě vypuštěna do vzduchu, na Projectile.

Nakonec potřebujeme, aby přepravky při spuštění skutečně zničily nepřátele (ale ne, když nepřátelé jen náhodně narazí na bednu! Proto jsme přepravky přiřadili k psaní jídla a změnili ho na projektil až při spuštění) a při zničení se samy zničily zeď. Na to použijeme další na sprite druhu Projectile se překrývá s jinýmSprite of kind Enemy block - v takovém případě zničíme oba skřítky a zvýšíme skóre o jednoho. Pokud projektil narazí na zeď, zničíme jeho sprite.

Nyní téměř hotovo! Tato hra je nyní hratelná, ale stále téměř žádná výzva - pouze jedna úroveň a v tom poměrně jednoduchá. Mohli bychom vytvořit více úrovní ručně nebo napsat algoritmus, který by tyto úrovně generoval automaticky pro nás - i když samozřejmě nebudou tak hezké jako úrovně vytvořené lidmi.

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í

Funkce pro generování náhodných úrovní vypadá zpočátku trochu děsivě, ale je to opravdu jednoduchá série kroků k algoritmickému generování nové úrovně tak, že nová úroveň je pro hratelnou postavu průchodná. Nejprve se postaráme o to, abychom dostali naši postavu na tuto novou úroveň - pomocí na sprite druhu Player overlapps … at location - we use portal door tile as a trigger to a new level. Ve funkci generate_level inicializujeme proměnné row, col a chance. Také vytvoříme novou mapu dlaždic, stejné velikosti jako dříve, ale prázdnou. Zde je však malá výhrada - aby bylo možné použít set … na řádku tilemap … col … block, tilemap musí mít tyto konkrétní dlaždice --- to je trochu intuitivní a možná chyba v Makecode. Co tedy budete muset udělat, je vytvořit tilemap, dát všechny typy dlaždic, které chcete použít, do náhodného generování A pak je vymazat.

Ručně položíme první dlaždici (0x6) a hráče na ni. Poté opakujeme další krok 30krát - další krok je jednoduchá série True -False kontrol, které rozhodují o tom, zda nás další sloupec bude mít 1) stejnou úroveň jako předchozí 2) jeden nahoru nebo 3) jeden dolů. Existuje také velmi malá šance, že další dlaždice bude lávová - nechceme jich příliš mnoho! Po každém vygenerovaném kameni vyplníme prostor pod ním lávou - jen kvůli kráse. Jako poslední krok přidáme nepřátele a bedny a položíme je na náhodný potěr.

Krok 5: Dobrodružství začíná

Dobrodružství začíná
Dobrodružství začíná

Voila! Dokončili jsme plošinovku a náš hrdina se může vydat na nekonečné dobrodružství, porážet netopýry a ničit bedny. pokud narazíte na problémy, můžete si stáhnout kód z našeho úložiště GitHub.

Je to jen plán a rozhodně lze provést nějaká vylepšení, například různé druhy nepřátel, bonusy, lepší generování úrovní a tak dále. Pokud vytvoříte vylepšenou verzi hry, podělte se o ni v níže uvedených komentářích! Další informace o GameGo a dalším hardwaru pro výrobce a pedagogy STEM najdete na našich webových stránkách https://tinkergen.com/ a přihlaste se k odběru našeho zpravodaje.

TinkerGen vytvořil kampaň na Kickstarteru pro MARK (Make A Robot Kit), robotickou sadu pro výuku kódování, robotiky, AI!

Doporučuje: