Tartalomjegyzék:

Battle City Remake a GameGo -n a Makecode Arcade segítségével: 4 lépés (képekkel)
Battle City Remake a GameGo -n a Makecode Arcade segítségével: 4 lépés (képekkel)

Videó: Battle City Remake a GameGo -n a Makecode Arcade segítségével: 4 lépés (képekkel)

Videó: Battle City Remake a GameGo -n a Makecode Arcade segítségével: 4 lépés (képekkel)
Videó: Battle City Remake on GameGo with Makecode Arcade 2024, November
Anonim
Image
Image

A GameGo egy Microsoft Makecode -kompatibilis, hordozható retro játékkonzol, amelyet a TinkerGen STEM oktatás fejlesztett ki. Az STM32F401RET6 ARM Cortex M4 chipen alapul, és STEM oktatóknak vagy csak azoknak készült, akik szeretik a szórakozást retro videojátékok készítésében. Kövesse ezt az oktatóanyagot, és próbálja ki a játékot a Makecode Arcade szimulátorban, majd futtassa a GameGo -n.

Ebben a cikkben kipróbáljuk magunkat egy klasszikus Battle City tank lövöldözős játék újrateremtésében, amelyet eredetileg 1985 -ben készített és publikált a Namco a Nintendo Entertainment System (NES) számára. Az eredeti játékban a játékos egy harckocsit irányít, és lövedékeket lő, hogy elpusztítsa az ellenséges tankokat. Az ellenséges tankok megpróbálják megsemmisíteni a játékos bázisát, valamint magát a játékos tankját. Végezünk némi módosítást a játékmeneten, hogy jobban illeszkedjünk a blokkprogramozási gyakorlatokhoz a GameGo -val, de a remake továbbra is sok hasonlóságot fog megőrizni az eredeti játékkal. Kezdjük!

Kellékek

GameGo

1. lépés: Alter -egónk - Sárga tank

Alteregónk - Sárga tank
Alteregónk - Sárga tank

Nyissa meg a Makecode Arcade webhelyet a https://arcade.makecode.com/ címen, és kattintson az új projektre. Elkezdjük, hogy alteregónk legyen a sárga tank. Válassza a MySprite beállítása a kedves játékosblokk sprite -jára lehetőséget, és rajzoljon egy sárga tartályt felfelé, mint kezdő sprite -t, és tegye a blokkot a kezdő blokkra. Add mozgassa mySprite gombokkal blokk. Most van egy tankunk, amelyet szimulációban gombokkal mozgathatunk! Nagyszerű, de mindig ugyanabba az irányba néz, még akkor is, ha lefelé vagy oldalra haladunk…

Ennek kijavításához adjunk hozzá még négy blokkot, egyet minden iránygombhoz. Hozzon létre egy új változót, az úgynevezett irányt - mentjük a tartályunk mozgási irányát, 100 megfelel lefelé, -100 felfelé, 200 jobbra és -200 balra. Miért ezek a számok? Később látni fogja, amikor hozzáadjuk a lövedékeket, hogy a tankunk kilő. A blokkok négy logikája nagyon egyszerű - ellenőrizzük, hogy az új irány (a gombnyomásra) megegyezik -e az előzővel. Ha igen, akkor alapvetően nem változtatunk. Ha nem, akkor cseréljük ki a tartály sprite -ját, és lefelé és balra fordítva fordítsuk meg a sprite képét, hogy elkerüljük a további sprite -k húzását. Végül rendeljük hozzá az irány kezdőértékét -100 -hoz (tank felfelé), mivel tankunk így indítja a játékot. Próbálja meg mozgatni a sárga tartályt most, a sprite a mozgás irányának megfelelően változik! Kiváló, most adjunk hozzá golyókat.

Golyókat lövünk lövedékkel lövedékre (kis ezüst négyzetet rajzolunk erre a sprite -ra) a mySprite -ből vx vy sebességgel. A bekapcsolt A gomb belsejében le kell nyomni az irány abszolút értékét, hogy a sárga tartály balra/jobbra felfelé/lefelé nézzen -e. Ezután lőjük a lövedéket az irányváltozás sebességével -ezért volt -100/100/-200/200 az irányértékekhez.

Most van egy sárga tartályunk, amely lövedékeket tud lőni és mozogni. Ha a sárga szimulált tankok érezhetnék, biztosan magányosnak érezné magát ebben az üres űrben ellenségek és tennivalók nélkül. Tehát a következő lépéshez adjunk hozzá ellenségeket, hogy teljen az idő.

2. lépés: Hozd ki az ellenséget

Hozd ki az ellenségeket
Hozd ki az ellenségeket
Hozd ki az ellenségeket
Hozd ki az ellenségeket

Ezt a lépést egy csomó új változó létrehozásával kezdjük: két tömb (az egyik az ellenséges sprite tartására, a másik az ellenséges irányok tartására), a spawn idő változója az ívások közötti időszak tárolására, az ellenség száma a maximális számú ellenség tárolására ugyanabban az időben. Ezenkívül két lövedéket (lövedék és ellenséges lövedék) adunk hozzá a startblokkba - ez segít elkerülni a későbbi hibákat.

Ezután minden… ms blokkban létrehozunk a játékfrissítésen, illesszük be a spawn_time változót. A blokk belsejében a logika egyszerű - ha a csatatéren az összes ellenség kevesebb, mint a megengedett számú ellenség, adjon hozzá egy ellenséget az ellenség_profil_listához, és adja hozzá 200 (jobbra) irány az ellenség számára.

Ezután a létrehozott fajta ellenség blokkban néhány grafikus hatást adunk hozzá, helyezzük egy véletlenszerű üres lapra, és hívjuk meg a spr_direction függvényt. A fajta ellenség ellenére az ellenség falba ütközik, ugyanezt a függvényt nevezzük pick_direction -nek.

Mi van ebben a funkcióban? Itt kezdenek kicsit bonyolulni a dolgok, úgyhogy várj. 50 százalék az esélye, hogy az ellenséges tank felmegy, és 50 százaléka lemegy - ennek megfelelően megváltoztatjuk a sprite -ot. Az egyetlen trükk itt az, hogy az ellenség_irányok_listában szereplő adott ellenséges tanknak megfelelő értéket is új irányba kell módosítanunk, így a megfelelő irányba lőjük a golyókat. Ehhez megtaláljuk az ellenséges sprite indexét az ellenség_profil_listában, és megváltoztatjuk az elem értékét az ellenség_irányok listában.

Végül adjunk hozzá lövést. 500 ms -os blokkonként adunk hozzá egy újabb frissítést a játékhoz, és teszünk egy elemet az ellenség_profil_listába. 30% eséllyel egy ellenséges sprite kilő az ellenséges lövedéket a mozgás irányába.

Ha most szimulációban indítjuk a játékot, láthatjuk, hogy sárga tankunk és ellenséges tankjaink ugyanabban a pontban jelennek meg, és üres térbe mennek. Mi lőhetünk, ők pedig a sárga tankunkat, de semmi sem történne. Annyira értelmetlen érzés, hogy még mindig:) Tegyük hozzá a dekorációkat és a játékmechanikát utolsó lépésként.

3. lépés: A játék 42

A játék 42
A játék 42
A játék 42
A játék 42
A játék 42
A játék 42

Ezt a lépést azzal kezdjük, hogy hozzáadjuk az életet és a pontszámot az Info lapon, és beállítjuk az élettartamot 10 -re, és nullára. Ezután hozzáadjuk a blokkhalmaz -csempe -térképet…. Rajzolja le a fájltérképet, és hasonlítson a fenti képernyőképre. Ne felejtse el hozzáadni a falakat!

Tegyük hozzá a fajta lövedékekhez. A lövedék átfedi a másikat A kedves játékos - ilyenkor az ellenség golyói eltalálják sárga tankunkat. Meg kell győződnünk arról, hogy ezek a lövedékek az ellenség golyói, és nem a sajátjaink, ezért hozzátesszük, hogy ha a feltétel blokkon belül van, és ha igaznak minősül, akkor kivonunk egyet az életszámból. Hasonlóan, egy másik blokkban a fajta robbanás miatt a lövedék átfedi a másikat a fajta ellenség ellen, meggyőződünk arról, hogy a lövedék sárga tartályból származó lövedék, és ha ez az állapot igaznak minősül, megsemmisítjük a otherSprite -t (az ellenséges tankot), távolítsuk el a listáról az ellenséges_profil_listából, és adj hozzá egyet a pontszerzéshez.

Az utolsó dolog a győzelem és a vereség feltételei - győzelemhez ellenőrizni fogjuk, hogy a pontszám magasabb vagy egyenlő -e 10 -vel az örök blokkban. Ha igen, akkor megmutatjuk a győzelmi képernyőt. És az élet nulla blokkjában megmutatjuk a Game Over képernyőt.

Most próbálja ki a szimulációban, hogy lássa, a játék a várt módon fut -e. Ezután töltse fel a GameGo -ra, és élvezze az ellenséges tankok szétzúzását!

4. lépés: Végtelen játék és fejlesztések

Végtelen játék és fejlesztések
Végtelen játék és fejlesztések

A GitHub tárházunkból két fájlt tölthet le a Makecode arcade számára - az egyik pontosan ugyanaz, amit akkor kapna, ha követi ezt az utasítást, a másik pedig egy frissített verzió, amely véletlenszerűen generált szintű előrehaladást eredményez. 10 szintje van, mindegyiket véletlenszerűen generálják, és megnövelik az ellenségek számát minden egyes következő szinten.

És persze ezen felül még sok mindent tehet hozzá Ön vagy tanítványai a játékhoz! Van jobb zene, törhető falak, különböző győzelmi feltételek és így tovább!

Ha javított változatot készít a játékról, ossza meg az alábbi megjegyzésekben! Ha többet szeretne megtudni a GameGo -ról és más hardverekről a gyártók és a STEM oktatók számára, látogasson el weboldalunkra: https://tinkergen.com/ és iratkozzon fel blogunkra.

A TinkerGen elindította a Kickstarter kampányt a MARK (Make A Robot Kit) számára, amely egy robotkészlet a kódolás, a robotika, az AI oktatására!

Ajánlott: