Obsah:

Battle City Remake na GameGo s Makecode Arcade: 4 kroky (s obrázky)
Battle City Remake na GameGo s Makecode Arcade: 4 kroky (s obrázky)

Video: Battle City Remake na GameGo s Makecode Arcade: 4 kroky (s obrázky)

Video: Battle City Remake na GameGo s Makecode Arcade: 4 kroky (s obrázky)
Video: Боб против Nintendo: История игры Боба 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í 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 se pokusíme znovu vytvořit klasickou hru Battle City pro tankové střílečky, původně vyrobenou a publikovanou v roce 1985 společností Namco pro Nintendo Entertainment System (NES). V původní hře hráč ovládá tank a střílí projektily, aby zničil nepřátelské tanky. Nepřátelské tanky se pokoušejí zničit hráčovu základnu i samotný hráčův tank. Provedeme určité úpravy ve hře, abychom lépe přizpůsobili postupy blokového programování pomocí GameGo, ale náš remake si stále zachová hodně podobnosti s původní hrou. Pojďme začít!

Zásoby

GameGo

Krok 1: Naše Alter -ego - žlutý tank

Naše Alter -ego - žlutý tank
Naše Alter -ego - žlutý tank

Otevřete Makecode Arcade na https://arcade.makecode.com/ a klikněte na nový projekt. Začneme s výrobou našeho alter-ega na žlutý tank. Zvolte Nastavit mySprite na sprite druhu bloku hráče a nakreslete žlutý tank směrem nahoru jako náš startovní sprite, vložte tento blok do startovacího bloku. Přidat přesunout mySprite pomocí bloku tlačítek. Nyní máme tank, se kterým můžeme simulovat pomocí tlačítek! Skvělé, ale vždy směřuje stejným směrem, i když se pohybujeme dolů nebo do stran…

Abychom to napravili, přidejme další čtyři bloky, jeden pro každé tlačítko směru. Vytvořte novou proměnnou, nazývanou směr - uložíme do ní směr pohybu naší nádrže, 100 bude odpovídat dolů, -100 bude odpovídat nahoru, 200 za pravé a -200 za levé. Proč tato čísla? Uvidíte později, když přidáme projektily, které náš tank vystřelí. Logika v každém ze čtyř těchto bloků je velmi jednoduchá - kontrolujeme, zda je nový směr (od stisknutí tlačítka) stejný jako směr předtím. Pokud ano, v zásadě neprovádíme žádné změny. Pokud tomu tak není, změníme sprite nádrže a v případě směru dolů a doleva převrátíme obrázek sprite, abychom se vyhnuli kreslení dalších spriteů. Nakonec přiřadíme počáteční hodnotu směru -100 (tank nahoru), protože takto náš tank začíná hru. Zkuste nyní přesunout žlutý tank, sprite se nyní změní podle směru pohybu! Výborně, teď přidejme kulky.

Budeme střílet kulky s nastaveným projektilem na projektil (nakreslete malý stříbrný čtverec pro ten sprite) z mySprite s rychlostmi vx vy. Uvnitř stisknutého bloku musíme zkontrolovat absolutní hodnotu směru, abychom zjistili, zda žlutá nádrž směřuje nahoru/dolů vlevo/vpravo. Poté přistoupíme k odpálení střely s proměnnou rychlostí směru -proto jsme pro hodnoty směru měli -100/100/-200/200.

Nyní máme žlutý tank, který může střílet projektily a pohybovat se. Pokud by žluté simulované tanky mohly mít pocit, určitě by se cítily osamělé v této prázdné prázdnotě bez nepřátel a věcí, které je třeba dělat. V dalším kroku tedy přidejme nepřátele, aby mohli trávit čas.

Krok 2: Vyhoďte nepřátele

Vyveďte nepřátele
Vyveďte nepřátele
Vyveďte nepřátele
Vyveďte nepřátele

Tento krok zahájíme vytvořením spousty nových proměnných: dvě pole (jedno pro držení nepřátelských spritů a druhé pro držení nepřátelských směrů), časová proměnná spawn pro uložení časového období mezi spawnováním, počet nepřátel pro uložení maximálního počtu nepřátel ve stejnou dobu. Přidáme také dva projektily (projektil a nepřátelský projektil) odpálené do startovacího bloku - to nám pomůže vyhnout se chybám později.

Dále vytváříme při aktualizaci hry každý … ms blok, vložte tam proměnnou spawn_time. Logika uvnitř bloku je jednoduchá - pokud je celkový počet nepřátel na bojišti menší než maximální povolený počet nepřátel, přidejte nepřítele do seznamu nepřátel_sprite_list a přidejte Směr 200 (jde doprava) pro tohoto nepřítele.

Dále do vytvořeného bloku sprite of Enemy přidáme několik grafických efektů, umístíme jej na náhodnou prázdnou dlaždici a zavoláme funkci pick_direction pro tento sprite. Ve sprite of kind nepřítel narazí na zeď, nazýváme stejnou funkci, pick_direction.

Co je v té funkci? Tady se věci začínají trochu komplikovat, takže vydržte. Existuje 50 procentní šance, že nepřátelský tank stoupne a 50 procent z něj klesne - podle toho změníme sprite. Jediným trikem je, že musíme také změnit hodnotu odpovídající danému konkrétnímu nepřátelskému tanku v seznamu nepřátelských směrů na jeho nový směr, abychom nechali střílet kulky správným směrem. Za tímto účelem najdeme rejstřík nepřátelských sprite v seznamu nepřátel_sprite_list a změníme hodnotu této položky v seznamu nepřátel_směrů.

Nakonec přidejme výstřely. Každých 500 ms blok přidáváme do aktualizace hry další a položku pro vkládáme do seznamu nepřátel_průvodce_sprite. S 30% šancí nepřátelský sprite vystřelí nepřátelský projektil v jeho směru pohybu.

Pokud nyní spustíme hru v simulaci, můžeme vidět, jak se náš žlutý tank a nepřátelské tanky objevují ve stejném bodě a míří do prázdného prostoru. Můžeme střílet a oni mohou střílet na náš žlutý tank, ale nic by se nestalo. Pořád mi to připadá tak bez smyslu:) Jako poslední krok přidejme dekorace a herní mechaniku.

Krok 3: 42 hry

42 hry
42 hry
42 hry
42 hry
42 hry
42 hry

Tento krok začneme přidáním života a skóre na kartě Informace a nastavením životnosti na 10 a skóre na nulu. Poté přidáme mapu dlaždic ze sady bloků do …. Nakreslete mapu souboru tak, aby vypadala jako na obrázku výše. Nezapomeňte přidat stěny!

Přidejme sprite of kind Projectile překrývá otherSprite of kind Player - to je, když kulky nepřítele zasáhnou náš žlutý tank. Musíme se ujistit, že tyto projektily jsou kulky nepřítele, a ne naše vlastní, takže přidáme, že pokud podmínka v bloku a pokud bude vyhodnocena jako True, odečteme jeden od počtu životů. Podobně jako v jiném bloku na sprite druhu Projectile překrývá otherSprite of kind Enemy zajišťujeme, aby projektil byl projektil ze žlutého tanku a pokud je tato podmínka vyhodnocena jako True, zničíme otherSprite (nepřátelský tank), odstraníme jej ze seznamu nepřátelského_sprite_listu a přidejte jeden ke skóre.

Poslední věcí jsou podmínky vítězství a porážky - u vítězství zkontrolujeme, zda je skóre vyšší nebo rovné 10 v navždy bloku. Pokud ano, zobrazíme obrazovku vítězství. A v životě nulový blok ukazujeme obrazovku Game Over.

Nyní to vyzkoušejte v simulaci, abyste zjistili, zda hra běží podle očekávání. Poté jej nahrajte do GameGo a užívejte si rozbíjení nepřátelských tanků!

Krok 4: Nekonečná hra a vylepšení

Nekonečná hra a vylepšení
Nekonečná hra a vylepšení

V našem úložišti GitHub si můžete stáhnout dva soubory pro Makecode arcade - jeden je přesně stejný, jaký byste získali, pokud budete postupovat podle tohoto návodu, a druhý je upgradovanou verzí, která má náhodně generovaný postup na úrovni. Má 10 úrovní, každá je generována náhodně se zvýšeným počtem nepřátel v každé následující úrovni.

A samozřejmě je ještě více věcí, které můžete vy nebo vaši studenti do hry navíc přidat! Je tu lepší hudba, rozbitné zdi, různé podmínky vítězství 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 tvůrce a pedagogy STEM najdete na našich webových stránkách https://tinkergen.com/ a přihlaste se k odběru našeho blogu.

TinkerGen zahájil kampaň Kickstarter pro MARK (Make A Robot Kit), robotickou sadu pro výuku kódování, robotiky, AI!

Doporučuje: