Sadržaj:

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

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

Video: Remake Battle City na GameGo -u sa Makecode Arcade: 4 koraka (sa slikama)
Video: SQUID GAME (WHITENO1SE x OMIKI REMIX) 2024, Novembar
Anonim
Image
Image

GameGo je retro prijenosna igraća konzola kompatibilna sa Microsoft Makecode -om, koju je razvilo TinkerGen STEM obrazovanje. Zasnovan je 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 originalno proizveo i objavio 1985. za Nintendo Entertainment System (NES). U originalnoj 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š remake će i dalje zadržati dosta sličnosti s originalnom igrom. Počnimo!

Supplies

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 ću s izradom našeg alter-ega u žutom tenku. Odaberite Set mySprite to sprite of block of kind player i nacrtajte žuti spremnik okrenut prema gore kao naš početni sprite, stavite taj blok unutar početnog bloka. Dodaj move mySprite sa blokovima dugmadi. 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 svako dugme smjera. Kreirajte 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 ovi brojevi? Vidjet ćete kasnije, kad dodamo projektile da će naš tenk ispaliti. Logika unutar svaka četiri bloka je vrlo jednostavna - provjeravamo je li novi smjer (pritiskom na tipku) isti kao i prethodni. Ako jeste, u osnovi ne radimo nikakve promjene. Ako nije, mijenjamo sprite spremnika, a u slučaju smjera prema dolje i ulijevo okrećemo sliku spritea kako bismo izbjegli crtanje dodatnih sprajtova. Konačno, dodijelimo početnu vrijednost smjera na -100 (tenk prema gore), jer naš tenk ovako započinje igru. Pokušajte sada premjestiti žuti spremnik, sprajt će se sada promijeniti prema smjeru kretanja! Odlično, sada dodajmo metke.

Ispaljivat ćemo metke sa postavljenim projektilom na projektil (izvući mali srebrni kvadrat za taj sprite) iz mySprite -a sa vx vy brzinama. Unutar dugmeta 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 promjenljivom 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 da prođe vrijeme.

Korak 2: Izvedite neprijatelje

Izvedite neprijatelje
Izvedite neprijatelje
Izvedite neprijatelje
Izvedite neprijatelje

Ovaj korak započinjemo stvaranjem gomile novih varijabli: dva niza (jedan za držanje neprijateljskih sprajtova i drugi za držanje neprijateljskih pravaca), 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 grešku.

Zatim kreiramo ažuriranje igre svaki… ms blok, ubacimo varijablu spawn_time. Logika unutar bloka je jednostavna - ako je ukupan broj neprijatelja na bojnom polju manji od maksimalno dozvoljenog broja neprijatelja, dodajte neprijatelja na neprijateljsku_sprite_listu i dodajte 200 (ide desno) za tog neprijatelja.

Zatim u stvoreni sprite vrste neprijateljskog bloka dodajemo 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.

Šta je u toj funkciji? Ovdje stvari počinju postajati pomalo komplicirane, 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 mogli ispaliti metke u pravom smjeru. Za to pronalazimo indeks neprijateljskog spriteta na listi neprijateljskih sprajtova i mijenjamo vrijednost te stavke na listi neprijateljskih smjerova.

Na kraju, dodajmo i hice ispaljivanja. Dodajemo još jedno ažuriranje igre svakih 500 ms bloka i stavljamo stavku for na neprijateljsku sprite_ listu. Sa 30% šanse neprijateljski duh će ispaliti neprijateljski projektil u smjeru kretanja.

Ako sada pokrenemo igru u simulaciji, možemo vidjeti kako se naši žuti tenkovi i neprijateljski tenkovi pojavljuju u istoj tački i odlaze u prazan prostor. Mi možemo pucati i oni u naš žuti tenk, ali ništa se neće dogoditi. 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 korak ćemo započeti dodavanjem života i rezultata na kartici Informacije i postavljanjem života na 10, a rezultat na nulu. Zatim dodajemo mapu pločica postavljenih blokova u…. Nacrtajte mapu datoteke da izgleda nešto poput onoga što vidite na gornjoj slici. Ne zaboravite dodati zidove!

Dodajmo sprajtu vrste projektila, projektili se preklapaju s drugim igračima - to je vrijeme kada 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 Tačno, 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 sa liste neprijateljske_sprite_liste i dodajte je da biste postigli gol.

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

Sada isprobajte simulaciju 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 nivoa. Ima 10 nivoa, od kojih je svaki nasumično generiran s povećanim brojem neprijatelja na svakom uzastopnom nivou.

I naravno, postoji još više stvari koje vi ili vaši učenici možete dodati u igru povrh toga! Postoji bolja muzika, lomljivi zidovi, različiti uvjeti pobjede i tako dalje!

Ako ipak napravite poboljšanu verziju igre, podijelite je u komentarima ispod! Za više informacija o GameGo -u 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, AI!

Preporučuje se: