Satura rādītājs:

Battle City pārtaisīšana GameGo ar Makecode Arcade: 4 soļi (ar attēliem)
Battle City pārtaisīšana GameGo ar Makecode Arcade: 4 soļi (ar attēliem)

Video: Battle City pārtaisīšana GameGo ar Makecode Arcade: 4 soļi (ar attēliem)

Video: Battle City pārtaisīšana GameGo ar Makecode Arcade: 4 soļi (ar attēliem)
Video: I Created My Own Mobile Game For $20 2024, Novembris
Anonim
Image
Image

GameGo ir ar Microsoft Makecode saderīga pārnēsājama spēļu konsole, ko izstrādājusi TinkerGen STEM izglītība. Tā pamatā ir mikroshēma STM32F401RET6 ARM Cortex M4 un paredzēta STEM pedagogiem vai vienkārši cilvēkiem, kuriem patīk izklaidēties, veidojot retro videospēles. Jūs varat sekot šai apmācībai un izmēģināt spēli Makecode Arcade simulatorā un pēc tam palaist to vietnē GameGo.

Šajā rakstā mēs izmēģināsim spēkus, lai atjaunotu klasisku Battle City tanku šāvēja spēli, kuru sākotnēji 1985. gadā izveidoja un publicēja Namco Nintendo Entertainment System (NES). Sākotnējā spēlē spēlētājs kontrolē tanku un šauj lādiņus, lai iznīcinātu ienaidnieka tankus. Ienaidnieka tanki mēģina iznīcināt spēlētāja bāzi, kā arī pašu spēlētāja tanku. Mēs veiksim dažas izmaiņas spēlē, lai labāk pielāgotu bloka programmēšanas praksi, izmantojot GameGo, taču mūsu pārtaisījums joprojām saglabās daudz līdzības ar sākotnējo spēli. Sāksim!

Piegādes

GameGo

1. solis: mūsu Alter -ego - dzeltenā tvertne

Mūsu Alter -ego - dzeltenā tvertne
Mūsu Alter -ego - dzeltenā tvertne

Atveriet Makecode Arcade vietnē https://arcade.makecode.com/ un noklikšķiniet uz jauna projekta. Mēs sāksim padarīt savu alter-ego par dzelteno tvertni. Izvēlieties Set mySprite to sprite of kind player block un uzzīmējiet dzelteno tvertni, kas vērsta uz augšu, kā mūsu sākuma sprite, ielieciet šo bloku sākuma bloka iekšpusē. Pievienot pārvietojiet mySprite ar pogām. Tagad mums ir tvertne, kuru mēs varam pārvietot ar pogām simulācijā! Lieliski, bet tas vienmēr ir vērsts vienā virzienā, pat ja mēs virzāmies lejup vai uz sāniem …

Lai to labotu, pievienosim vēl četrus blokus, vienu katrai virziena pogai. Izveidojiet jaunu mainīgo, ko sauc par virzienu - mēs tajā saglabāsim mūsu tvertnes kustības virzienu, 100 - uz leju, -100 - uz augšu, 200 pa labi un -200 pa kreisi. Kāpēc šie skaitļi? Jūs redzēsit vēlāk, kad pievienosim šāviņus, ka mūsu tvertne darbosies. Loģika katrā no šiem četriem blokiem ir ļoti vienkārša - mēs pārbaudām, vai jauns virziens (no pogas nospiešanas) ir tāds pats kā iepriekšējais virziens. Ja tā ir, mēs principā neveicam nekādas izmaiņas. Ja tā nav, mēs mainām tvertnes sprite un, ja virziens uz leju un pa kreisi, mēs apgriežam sprite attēlu, lai izvairītos no papildu spritu vilkšanas. Visbeidzot, piešķirsim virziena sākuma vērtību -100 (tvertne uz augšu), jo tā mūsu tvertne sāk spēli. Mēģiniet pārvietot dzelteno tvertni tūlīt, sprite mainīsies atbilstoši kustības virzienam! Lieliski, tagad pievienosim lodes.

Mēs izšauksim lodes ar lādiņu uz šāviņu (uzzīmēsim nelielu sudraba kvadrātu šim spritam) no mySprite ar vx vy ātrumu. Ieslēgtās pogas A iekšpusē ir jāpārbauda virziena absolūtā vērtība, lai redzētu, vai dzeltenā tvertne ir vērsta uz augšu/uz leju no kreisās/labās puses. Pēc tam mēs turpinām izšaut šāviņu ar mainīgā virziena ātrumu -tāpēc mums bija -100/100/-200/200 virziena vērtībām.

Tagad mums ir dzeltena tvertne, kas var izšaut lādiņus un pārvietoties. Ja dzeltenās simulētās tvertnes varētu izjust, tas noteikti justos vientuļš šajā tukšajā tukšumā bez ienaidniekiem un darāmām lietām. Tātad, nākamajam solim pievienosim ienaidniekus, lai tas pavadītu laiku.

2. solis: izvediet ienaidniekus

Izvediet ienaidniekus
Izvediet ienaidniekus
Izvediet ienaidniekus
Izvediet ienaidniekus

Mēs sāksim šo darbību, izveidojot virkni jaunu mainīgo: divus masīvus (vienu ienaidnieka spritu turēšanai un otru ienaidnieka virzienu turēšanai), nārsta laika mainīgo laika perioda saglabāšanai starp nārsta vietām, ienaidnieka skaitu maksimālā ienaidnieku skaita saglabāšanai. tajā pašā laikā. Mēs pievienosim arī divus šāviņus (šāviņu un ienaidnieka šāviņu), kas ieslēdzas sākuma blokā - tas mums palīdzēs izvairīties no kļūdas vēlāk.

Tālāk mēs izveidojam spēles atjauninājumu katru… ms bloku, ievietojiet tur mainīgo spawn_time. Bloka loģika ir vienkārša - ja kopējais ienaidnieku skaits kaujas laukā ir mazāks par maksimālo atļauto ienaidnieku skaitu, pievienojiet ienaidnieku ienaidnieka_sprite_listam un pievienojiet 200 (iet pa labi) virzienā šim ienaidniekam.

Tālāk ieslēgtajā ienaidnieka bloka sprintā mēs pievienojam dažus grafiskos efektus, ievietojam to nejauši izvēlētā tukšā flīzē un izsaucam šī sprita funkciju pick_direction. Neraugoties uz to, ka ienaidnieks ietriecas sienā, mēs to pašu funkciju saucam par pick_direction.

Kas ir tajā funkcijā? Šeit lietas sāk kļūt nedaudz sarežģītas, tāpēc pagaidiet. Pastāv 50 procentu iespēja, ka ienaidnieka tanks uzkāps un 50 procenti nolaidīsies - mēs attiecīgi mainām spritu. Vienīgais triks šeit ir tāds, ka mums ir arī jāmaina vērtība, kas atbilst konkrētajai ienaidnieka tvertnei ienaidnieka_virzienu sarakstā, uz jauno virzienu, tāpēc mēs gribētu, lai tā izšautu lodes pareizajā virzienā. Šim nolūkam mēs atrodam ienaidnieka sprite indeksu ienaidnieka_produkta_sarakstā un mainām šī vienuma vērtību ienaidnieka_virzienu sarakstā.

Visbeidzot, pievienosim šāvienus. Mēs pievienojam vēl vienu spēles atjauninājumu ik pēc 500 ms bloķēšanas un ievietojam vienumu ienaidnieka_produktu_sarakstā. Ar 30% iespēju ienaidnieka sprīts apšaudīs ienaidnieka šāviņu tā kustības virzienā.

Ja mēs tagad uzsāksim spēli simulācijā, mēs varam redzēt, kā mūsu dzeltenā tvertne un ienaidnieka tanki parādās tajā pašā vietā un nonāk tukšā telpā. Mēs varam šaut, un viņi var nošaut mūsu dzelteno tanku, bet nekas nenotiktu. Jūtos tik bez jēgas:) Pēdējam solim pievienosim dekorācijas un spēļu mehāniku.

3. solis: spēles 42

Spēles 42
Spēles 42
Spēles 42
Spēles 42
Spēles 42
Spēles 42

Mēs sāksim šo soli, cilnē Informācija pievienojot dzīves vērtību un rezultātu un iestatot dzīves vērtību uz 10 un rezultātu uz nulli. Tad mēs pievienojam bloku kopu flīžu karti…. Uzzīmējiet failu karti, lai tā izskatītos līdzīga iepriekš redzamajā ekrānuzņēmumā. Neaizmirstiet pievienot sienas!

Pievienosim sprite of kind šāviņi pārklājas ar citiemSprite of kind Player - tas ir tad, kad ienaidnieka lodes trāpīja mūsu dzeltenā tvertnē. Mums jāpārliecinās, ka šie šāviņi ir ienaidnieka lodes, nevis mūsu pašu, tāpēc piebildīsim, ka, ja nosacījums blokā un ja tas tiek novērtēts kā Patiess, tad mēs atņemam vienu no dzīvības skaita. Līdzīgi tam, citā blokā uz sava veida lādiņiem pārklājas citiLaišu ienaidnieks, mēs pārliecināmies, ka šāviņš ir lādiņš no dzeltenas tvertnes, un, ja šis nosacījums tiek uzskatīts par patiesu, mēs iznīcinām cituSprite (ienaidnieka tvertne) no ienaidnieka_profila_saraksta un pievienojiet vienu, lai gūtu vārtus.

Pēdējā lieta ir uzvaras un sakāves nosacījumi - lai iegūtu uzvaru, mēs pārbaudīsim, vai rezultāts ir augstāks vai vienāds ar 10 mūžīgajā blokā. Ja tā ir, tad mēs parādām uzvaras ekrānu. Un dzīves nulles blokā mēs parādām ekrānu Game Over.

Tagad izmēģiniet to simulācijā, lai redzētu, vai spēle darbojas, kā paredzēts. Pēc tam augšupielādējiet to GameGo un izbaudiet ienaidnieka tanku sagraušanu!

4. solis: nebeidzama spēle un uzlabojumi

Bezgalīga spēle un uzlabojumi
Bezgalīga spēle un uzlabojumi

Mūsu GitHub krātuvē jūs varat lejupielādēt divus Makecode arkādes failus - viens ir tieši tāds pats, kādu jūs iegūtu, ja izpildītu šo pamācību, bet otrs ir jaunināta versija, kurai ir nejauši ģenerēta līmeņa progresija. Tam ir 10 līmeņi, katrs no tiem tiek ģenerēts nejauši, palielinot ienaidnieku skaitu katrā nākamajā līmenī.

Un, protams, ir vēl vairāk lietu, ko jūs vai jūsu studenti var pievienot spēlei! Tur ir labāka mūzika, salaužamas sienas, dažādi uzvaras nosacījumi un tā tālāk!

Ja jūs izveidojat uzlabotu spēles versiju, kopīgojiet to komentāros zemāk! Lai iegūtu vairāk informācijas par GameGo un citu aparatūru ražotājiem un STEM pedagogiem, apmeklējiet mūsu vietni https://tinkergen.com/ un abonējiet mūsu emuāru.

TinkerGen ir uzsācis Kickstarter kampaņu MARK (Make A Robot Kit), robotu komplekts kodēšanas, robotikas, AI mācīšanai!

Ieteicams: