Sadržaj:

Remake Battle City na GameGo with Makecode Arcade: 4 koraka (sa slikama)
Remake Battle City na GameGo with Makecode Arcade: 4 koraka (sa slikama)

Video: Remake Battle City na GameGo with Makecode Arcade: 4 koraka (sa slikama)

Video: Remake Battle City na GameGo with Makecode Arcade: 4 koraka (sa slikama)
Video: Final Combat (Battle City remake) - 8 bit game 2024, Studeni
Anonim
Image
Image

GameGo je retro prijenosna igraća konzola kompatibilna s Microsoft Makecodeom koju je razvilo TinkerGen STEM obrazovanje. Temelji se na STM32F401RET6 ARM Cortex M4 čipu i napravljen je za STEM edukatore ili samo ljude koji se vole zabavljati stvarajući retro video igre. Možete slijediti ovaj vodič i isprobati igru u Makecode Arcade simulatoru, a zatim je pokrenuti na GameGo -u.

U ovom ćemo se članku okušati u stvaranju klasične tenkovske pucačke igre Battle City, koju je Namco izvorno proizveo i objavio 1985. za Nintendo Entertainment System (NES). U izvornoj igri igrač kontrolira tenk i puca projektilima kako bi uništio neprijateljske tenkove. Neprijateljski tenkovi pokušavaju uništiti bazu igrača, kao i sam tenk igrača. Napravit ćemo neke izmjene u igri kako bismo bolje prilagodili prakse programiranja blokova s GameGo -om, ali naš će remake i dalje zadržati dosta sličnosti s izvornom igrom. Započnimo!

Pribor

GameGo

Korak 1: Naš Alter -ego - Žuti tenk

Naš Alter -ego - Žuti tenk
Naš Alter -ego - Žuti tenk

Otvorite Makecode Arcade na https://arcade.makecode.com/ i kliknite na novi projekt. Započet ćemo s izradom našeg alter-ega u žutom spremniku. Odaberite Set mySprite to sprite of block of kind of play i nacrtajte žuti spremnik okrenut prema gore kao naš početni sprite, stavite taj blok unutar početnog bloka. Dodaj premjesti mySprite s blokovima gumba. Sada imamo spremnik koji možemo pomicati pomoću gumba u simulaciji! Odlično, ali uvijek je okrenuto u istom smjeru, čak i kad se krećemo prema dolje ili bočno …

Da bismo to ispravili, dodajmo još četiri bloka, po jedan za svaki gumb smjera. Napravite novu varijablu, koja se naziva smjer - u njoj ćemo spremiti smjer kretanja našeg spremnika, 100 će odgovarati dolje, -100 će odgovarati gore, 200 za desnu i -200 za lijevu. Zašto ove brojke? Vidjet ćete kasnije, kad dodamo projektile koje će naš tenk ispaliti. Logika unutar svaka četiri bloka vrlo je jednostavna - provjeravamo je li novi smjer (pritiskom na tipku) isti kao i prije. Ako jest, u osnovi ne radimo nikakve promjene. Ako nije, mijenjamo sprite spremnika, a u slučaju smjera prema dolje i ulijevo okrećemo sliku sprite kako bismo izbjegli crtanje dodatnih sprajtova. Na kraju dodijelimo početnu vrijednost smjera na -100 (tenk prema gore), jer naš tenk tako započinje igru. Pokušajte pomaknuti žuti spremnik sada, sprajt će se sada promijeniti prema smjeru kretanja! Odlično, sada dodajmo metke.

Ispalit ćemo metke s postavljenim projektilom na projektil (izvući mali srebrni kvadrat za taj sprite) s mySpritea brzinama vx vy. Unutar gumba za uključivanje Pritisnuti blok, moramo provjeriti apsolutnu vrijednost smjera da vidimo je li žuti spremnik okrenut gore/dolje lijevo/desno. Zatim nastavljamo ispaljivati projektil s promjenjivom brzinom smjera -zato smo imali -100/100/-200/200 za vrijednosti smjera.

Sada imamo žuti tenk koji može ispaljivati projektile i kretati se. Da su žuti simulirani tenkovi mogli imati osjećaj, sigurno bi se osjećao usamljeno u ovoj praznoj praznini bez neprijatelja i stvari za obaviti. Dakle, za sljedeći korak dodajmo neprijatelje kako bi prošao vrijeme.

Korak 2: Izvedite neprijatelje

Izvedite neprijatelje
Izvedite neprijatelje
Izvedite neprijatelje
Izvedite neprijatelje

Ovaj ćemo korak započeti stvaranjem hrpe novih varijabli: dva niza (jedan za držanje neprijateljskih spritova i drugi za držanje neprijateljskih uputa), vremenska varijabla mrijesta za spremanje vremenskog razdoblja između mrijesta, broj neprijatelja za pohranu maksimalnog broja neprijatelja u isto vrijeme. Također ćemo dodati dva projektila (projektil i neprijateljski projektil) koji ispaljuju na početni blok - što će nam pomoći da kasnije izbjegnemo pogrešku.

Zatim na ažuriranju igre stvaramo svaki… ms blok, tamo umetnite varijablu spawn_time. Logika unutar bloka je jednostavna - ako je ukupan broj neprijatelja na bojnom polju manji od maksimalno dopuštenog broja neprijatelja, dodajte neprijatelja na neprijateljski sprite_list i dodajte 200 (ide desno) za tog neprijatelja.

Zatim, u stvoreni sprite vrste Enemy bloka dodamo neke grafičke efekte, postavljamo ih na slučajnu praznu pločicu i pozivamo funkciju pick_direction za ovaj sprite. U sprajtu vrste neprijatelj udara u zid, istu funkciju nazivamo pick_direction.

Što je u toj funkciji? Ovdje se stvari počinju pomalo komplicirati, pa se držite. Postoji 50 posto šanse da se neprijateljski tenk podigne, a 50 posto da se spusti - prema tome mijenjamo sprite. Jedini trik ovdje je da također moramo promijeniti vrijednost koja odgovara tom neprijateljskom tenku na listi neprijateljskih smjerova u novi smjer, kako bismo ga ispaljivali u pravom smjeru. Za to pronalazimo indeks neprijateljskog spriteta na listi neprijateljskih sprajtova i mijenjamo vrijednost te stavke na popisu neprijateljskih smjerova.

Na kraju, dodajmo i hice ispaljivanja. Dodajemo još jedno ažuriranje igre svakih 500 ms bloka i stavku for stavimo na neprijateljsku_sprite_ listu. S 30% šanse neprijateljski duh ispalit će neprijateljski projektil u smjeru kretanja.

Ako sada pokrenemo igru u simulaciji, možemo vidjeti kako se naš žuti tenk i neprijateljski tenkovi pojavljuju u istoj točki i odlaze u prazan prostor. Mi možemo pucati i oni u naš žuti tenk, ali ništa se ne bi dogodilo. I dalje se osjeća bez smisla:) Dodajmo ukrase i mehaniku igara kao posljednji korak.

Korak 3: 42 igre

42 igre
42 igre
42 igre
42 igre
42 igre
42 igre

Ovaj ćemo korak započeti dodavanjem života i rezultata na kartici Informacije i postavljanjem života na 10, a rezultat na nulu. Zatim dodajemo kartu postavljenih blokova u…. Nacrtajte mapu datoteke tako da izgleda kao što vidite na gornjoj snimci zaslona. Ne zaboravite dodati zidove!

Dodajmo sprite vrste projektila preklapa se otherSprite of kind Player - tada neprijateljski meci pogađaju naš žuti tenk. Moramo biti sigurni da su ti projektili neprijateljski meci, a ne naši, pa ćemo dodati da ako je stanje unutar bloka i ako se ocijeni kao True, tada oduzimamo jedan od broja života. Slično njemu, u drugom bloku na sprite vrste projektila preklapa se otherSprite of kind Enemy pazimo da je projektil projektil iz žutog tenka i ako se ovo stanje ocijeni kao True, uništavamo otherSprite (neprijateljski tenk), uklanjamo ga s popisa neprijateljske_sprite_liste i dodajte jednu za bodovanje.

Posljednja stvar su uvjeti pobjede i poraza - za pobjedu ćemo provjeriti je li rezultat veći ili jednak 10 u bloku zauvijek. Ako jest, tada prikazujemo zaslon pobjede. U nultom bloku života prikazujemo zaslon Game Over.

Sada isprobajte u simulaciji da vidite radi li igra kako se očekivalo. Zatim ga prenesite na GameGo i uživajte u razbijanju neprijateljskih tenkova!

Korak 4: Beskrajna igra i poboljšanja

Beskrajna igra i poboljšanja
Beskrajna igra i poboljšanja

U našem spremištu GitHub možete preuzeti dvije datoteke za Makecode arkadu - jedna je potpuno ista koju biste dobili ako slijedite ove upute, a druga je nadograđena verzija koja ima nasumično generiranu progresiju razine. Ima 10 razina, svaka je nasumično generirana s povećanim brojem neprijatelja u svakoj sljedećoj razini.

I naravno, postoji još više stvari koje vi ili vaši učenici možete dodati u igru povrh toga! Ima bolje glazbe, lomljivih zidova, različitih uvjeta pobjede i tako dalje!

Ako ipak napravite poboljšanu verziju igre, podijelite je u komentarima ispod! Za više informacija o GameGou i drugom hardveru za proizvođače i STEM edukatore posjetite našu web stranicu, https://tinkergen.com/ i pretplatite se na naš blog.

TinkerGen je započeo Kickstarter kampanju za MARK (Make A Robot Kit), komplet robota za učenje kodiranja, robotike, umjetne inteligencije!

Preporučeni: