Përmbajtje:

Battle City Remake në GameGo With Makecode Arcade: 4 hapa (me fotografi)
Battle City Remake në GameGo With Makecode Arcade: 4 hapa (me fotografi)

Video: Battle City Remake në GameGo With Makecode Arcade: 4 hapa (me fotografi)

Video: Battle City Remake në GameGo With Makecode Arcade: 4 hapa (me fotografi)
Video: Final Combat (Battle City remake) - 8 bit game 2024, Nëntor
Anonim
Image
Image

GameGo është një tastierë portative e lojërave retro e pajtueshme me Microsoft Makecode e zhvilluar nga arsimi TinkerGen STEM. Bazohet në çipin STM32F401RET6 ARM Cortex M4 dhe është bërë për edukatorët STEM ose thjesht njerëzit që duan të argëtohen duke krijuar video lojëra retro. Ju mund të ndiqni këtë tutorial dhe të provoni lojën në imituesin Makecode Arcade dhe më pas ta ekzekutoni në GameGo.

Në këtë artikull ne do të provojmë dorën tonë për të rikrijuar një lojë klasike të revoleve të Battle City tank, e prodhuar dhe botuar fillimisht në 1985 nga Namco për Nintendo Entertainment System (NES). Në lojën origjinale, lojtari kontrollon një tank dhe gjuan predha për të shkatërruar tanket e armikut. Tanket e armikut përpiqen të shkatërrojnë bazën e lojtarit, si dhe vetë tankun e lojtarit. Ne do të bëjmë disa modifikime në lojë për të përshtatur më mirë praktikat e programimit të bllokut me GameGo, por xhirimi ynë do të ruajë ende shumë ngjashmëri me lojën origjinale. Le të fillojmë!

Furnizimet

Lojë Shko

Hapi 1: Alter -egoja jonë - Rezervuari i Verdhë

Alter -egoja jonë - Rezervuari i Verdhë
Alter -egoja jonë - Rezervuari i Verdhë

Hapni Makecode Arcade në https://arcade.makecode.com/ dhe klikoni mbi projektin e ri. Ne do të fillojmë ta bëj alter-egon tonë rezervuarin e verdhë. Zgjidhni Set mySprite to sprite të llojit të bllokut të lojtarëve dhe vizatoni një rezervuar të verdhë përballë lart si sprite -i ynë fillestar, vendoseni atë bllok brenda në bllokun e fillimit. Shtoni lëvizjen mySprite me bllokun e butonave. Tani kemi një rezervuar që mund ta lëvizim me butona në simulim! E shkëlqyeshme, por ajo është gjithmonë përballë të njëjtit drejtim, edhe kur lëvizim poshtë ose anash…

Për ta korrigjuar atë, le të shtojmë katër blloqe të tjera, një për secilin buton drejtimi. Krijoni një ndryshore të re, të quajtur drejtim - ne do të ruajmë drejtimin e lëvizjes së rezervuarit tonë në të, 100 do të korrespondojnë me poshtë, -100 do të korrespondojnë me lart, 200 për të djathtën dhe -200 për të majtën. Pse këto numra? Do ta shihni më vonë, kur të shtojmë predhat që tanku ynë do të gjuajë. Logjika brenda secilit prej këtyre blloqeve është shumë e thjeshtë - ne kontrollojmë nëse drejtimi i ri (nga shtypja e butonave) është i njëjtë me drejtimin e mëparshëm. Nëse është, ne në thelb nuk bëjmë ndonjë ndryshim. Nëse nuk është, ne ndryshojmë sprite -n e rezervuarit dhe në rast me drejtim poshtë dhe majtas, ne rrokullisim imazhin e sprite -it për të shmangur vizatimin e spritave shtesë. Së fundi, le të caktojmë vlerën fillestare të drejtimit në -100 (rezervuari lart), pasi kështu tanku ynë fillon lojën. Provoni të lëvizni rezervuarin e verdhë tani, sprite do të ndryshojë sipas drejtimit të lëvizjes tani! E shkëlqyeshme, tani le të shtojmë plumba.

Ne do të gjuajmë plumba me predhë të vendosur në predhë (vizatoni një katror të vogël argjendi për atë sprite) nga mySprite me shpejtësi vx vy. Brenda butonit të ndezur Një bllok i shtypur, ne duhet të kontrollojmë vlerën absolute të drejtimit për të parë nëse rezervuari i verdhë është përballë lart/poshtë majtas/djathtas. Ne pastaj vazhdojmë të gjuajmë predhën me ndryshoren e shpejtësisë së drejtimit -kjo është arsyeja pse ne kishim -100/100/-200/200 për vlerat e drejtimit.

Tani kemi rezervuar të verdhë që mund të gjuajë predha dhe të lëvizë. Nëse tanket e simuluara të verdha mund të kishin ndjenjën, me siguri do të ndiheshin të vetmuar në këtë boshllëk bosh pa armiq dhe gjëra për të bërë. Pra, për hapin tjetër le të shtojmë armiq që ajo të kalojë kohën.

Hapi 2: Nxirrni armiqtë

Nxirrni armiqtë
Nxirrni armiqtë
Nxirrni armiqtë
Nxirrni armiqtë

Ne do ta fillojmë këtë hap duke krijuar një bandë variablash të reja: dy vargje (një për mbajtjen e armëve të armikut dhe një tjetër për mbajtjen e drejtimeve të armikut), ndryshore e kohës së pjelljes për ruajtjen e periudhës kohore midis pjelljeve, numërimin e armikut për ruajtjen e numrit maksimal të armiqve në të njëjtën kohë. Ne gjithashtu do të shtojmë dy predha (predhë dhe predhë armike) që gjuajnë në bllokun fillestar - që do të na ndihmojë të shmangim një gabim më vonë.

Tjetra ne krijojmë në përditësimin e lojës çdo bllok … ms, futim variablin spawn_time atje. Logjika brenda bllokut është e thjeshtë - nëse numri i përgjithshëm i armiqve në fushën e betejës është më i vogël se numri maksimal i lejuar i armiqve, shtoni një armik në listën e armikut_prite dhe shtoni Drejtimi 200 (duke shkuar djathtas) për atë armik.

Tjetra, në sprite -in e krijuar të llojit Enemy block ne shtojmë disa efekte grafike, e vendosim në një pllakë të zbrazët të rastësishme dhe thërrasim funksionin pick_direction për këtë sprite. Në kundërshtimin e kundërt të armikut, ne e quajmë të njëjtin funksion, pick_direction.

Çfarë ka në atë funksion? Këtu gjërat fillojnë të komplikohen pak, prandaj qëndroni. Ka 50 përqind shanse që tanku i armikut të rritet dhe 50 përqind i tij të bjerë poshtë - ne ndryshojmë sprite në përputhje me rrethanat. Truku i vetëm këtu është se ne gjithashtu duhet të ndryshojmë vlerën që korrespondon me atë tank të armikut të veçantë në listën e armikut_drejtimet në drejtimin e tij të ri, kështu që ne do të kishim që të gjuante plumba në drejtimin e duhur. Për këtë ne gjejmë indeksin e armikut sprite në listën e armikut_prprishës dhe ndryshojmë vlerën e atij artikulli në listën e drejtimeve të armikut.

Së fundi, le të shtojmë të shtënat. Ne shtojmë një tjetër në azhurnimin e lojës çdo bllok 500 ms dhe vendosim një artikull për në listën e armikut_sprite. Me 30% shanse që një sprite armiku të gjuajë predhën e armikut në drejtimin e lëvizjes.

Nëse e fillojmë lojën në simulim tani, ne mund të shohim tanket tona të verdha dhe tanket e armikut që shfaqen në të njëjtën pikë dhe shkojnë në hapësirë boshe. Ne mund të qëllojmë dhe ata mund të qëllojnë tankun tonë të verdhë, por asgjë nuk do të ndodhte. Ndihet ende pa kuptim:) Le të shtojmë dekorimet dhe mekanikën e lojës si hapi i fundit.

Hapi 3: 42 i lojës

42 të lojës
42 të lojës
42 të lojës
42 të lojës
42 të lojës
42 të lojës

Ne do ta fillojmë këtë hap duke shtuar jetën dhe rezultatin nga skeda Info dhe duke vendosur jetën në 10 dhe rezultatin në zero. Pastaj shtojmë hartën e pllakave të bllokut të vendosur në…. Vizatoni hartën e skedarit për të parë diçka si ju shihni në pamjen e mësipërme. Mos harroni të shtoni muret!

Le të shtojmë në sprite të llojit Projekti mbivendoset në lojtarin tjetër të Prillit të llojit - kjo është kur plumbat e armikut godasin rezervuarin tonë të verdhë. Ne duhet të sigurohemi që këto predha janë plumbat e armikut dhe jo tonat, kështu që ne do të shtojmë se nëse gjendja brenda bllokut dhe nëse vlerësohet si e vërtetë, atëherë ne zbresim një nga numërimi i jetës. Ngjashëm me të, në një bllok tjetër në sprite të llojit Projekti mbivendoset në tjetrinShpirti i llojit Armik ne sigurohemi që predha është një predhë nga rezervuari i verdhë dhe nëse kjo gjendje vlerësohet si e vërtetë, ne shkatërrojmëShitet e tjera (tanku i armikut), e heqim atë nga lista të armikut_listën_prite dhe shtoni një në rezultat.

Gjëja e fundit është kushtet e fitores dhe humbjes - për fitore, ne do të kontrollojmë nëse rezultati është më i lartë ose i barabartë me 10 në bllokun përgjithmonë. Nëse është, atëherë ne tregojmë ekranin e fitores. Dhe në bllokun e jetës zero ne shfaqim ekranin Game Over.

Tani provojeni në simulim për të parë nëse loja po funksionon siç pritej. Pastaj ngarkojeni atë në GameGo dhe kënaquni duke shkatërruar tanket e armikut!

Hapi 4: Lojë e pafund dhe përmirësime

Lojë e pafund dhe përmirësime
Lojë e pafund dhe përmirësime

Në depon tonë GitHub mund të shkarkoni dy skedarë për Makecode arcade - njëra është saktësisht e njëjta që do të kishit nëse ndiqni këtë udhëzues dhe tjetra është një version i azhurnuar, i cili ka gjeneruar rastësisht progresion të nivelit. Ai ka 10 nivele, secili gjenerohet rastësisht me një numër të shtuar armiqsh në secilin nivel të njëpasnjëshëm.

Dhe sigurisht, ka edhe më shumë gjëra që ju ose studentët tuaj mund t'i shtoni lojës përveç kësaj! Ka muzikë më të mirë, mure të thyer, kushte të ndryshme fitoreje e kështu me radhë!

Nëse bëni një version të përmirësuar të lojës, ndajeni atë në komentet më poshtë! Për më shumë informacion mbi GameGo dhe pajisje të tjera për krijuesit dhe edukatorët STEM, vizitoni faqen tonë të internetit, https://tinkergen.com/ dhe regjistrohuni në blogun tonë.

TinkerGen ka filluar një fushatë Kickstarter për MARK (Make A Robot Kit), një komplet robotësh për mësimin e kodimit, robotikës, AI!

Recommended: