Kazalo:

Platformer z neskončnimi ravnmi na GameGo z Makecode Arcade: 5 korakov (s slikami)
Platformer z neskončnimi ravnmi na GameGo z Makecode Arcade: 5 korakov (s slikami)

Video: Platformer z neskončnimi ravnmi na GameGo z Makecode Arcade: 5 korakov (s slikami)

Video: Platformer z neskončnimi ravnmi na GameGo z Makecode Arcade: 5 korakov (s slikami)
Video: PS1 STORIES - 40 Winks 2024, Julij
Anonim
Image
Image

GameGo je retro prenosna igralna konzola, združljiva z Microsoft Makecode, ki jo je razvilo izobraževalno podjetje TinkerGen STEM. Temelji na čipu STM32F401RET6 ARM Cortex M4 in je namenjen učiteljem STEM ali samo ljudem, ki se radi zabavajo pri ustvarjanju retro video iger.

V tem članku bomo ustvarili platformersko igro z neskončno naključno ustvarjenimi ravnmi. V platformerju mora igralec, ki ga nadzoruje igralec, skakati in se vzpenjati med visečimi platformami, pri tem pa se izogibati oviram. V okoljih so pogosto neravni tereni različnih višin, ki jih je treba prehoditi. Igralec ima pogosto nekaj nadzora nad višino in razdaljo skokov, da se izogne, da bi njihov lik padel v smrt ali zamudil potrebne skoke. Izvedli bomo vse te osnovne elemente in dodali tudi funkcijo po meri, ki bo ustvarila nove ravni, ko pridemo do konca zadnje. Začnimo!

Zaloge

GameGo

1. korak: Junak

Junak
Junak

Kot prvi korak bomo ustvarili naš alter-ego. Moje risarske sposobnosti so precej slabe, zato sem se odločil, da uporabim enega iz Galerije;) Za razliko od prejšnje igre, ki smo jo naredili, se v tem platformerju naš lik, ki ga je mogoče igrati, lahko premika le levo in desno, lahko pa tudi skoči. Torej, namesto da bi za glavnega junaka imeli dva različna sprajta, je tokrat dovolj eden - lahko samo obrnemo podobo sprite, ko spremenimo smer.

Najprej morate dodati ozadje in zemljevid ploščic. Izbral sem 32x8 dolg zemljevid ploščic - za prvo raven ga bomo narisali ročno, kot je na posnetku zaslona 2. Nato dodamo našega igralnega lika z nastavljenim mySprite v sprite vrste Block Player in ga postavimo na vrh ploščice 0-5. Kamero smo nastavili tudi za premikanje z znaki, ki jih je mogoče predvajati, in nadzorovati njeno premikanje v levo in desno - hitrost vy premikanja bomo nastavili na 0, saj naš lik ne bi smel prosto plavati na zemljevidu po smeri y. Dodajte dva bloka pritisnjena na gumb, enega za levi gumb, enega za desnega. Ko pritisnemo levi gumb, pred pritiskom na gumb preverimo, ali je bila naša smer "leva". Če je tako, gremo levo. Če ne, bi morali obrniti podobo svojega duha. Podobna logika za desno gibanje.

Zaenkrat vse v redu, edini problem se zdi, da naš junak ne more premagati nobene ovire. Zato moramo dodati še skakanje. Nadzirali bomo gumbe za pritisk gumba navzgor in ko bo zaznan, bomo spremenljivo skakanje nastavili na 1, zabeležili začetne premike skakanja in nastavili hitrost sprite vy na -200 (navzgor). Nato po določenem časovnem obdobju nastavimo hitrost na 200 (pada navzdol), da naš junak ne bi streljal v nebo kot raketa.

Mislim, da smo zdaj ustvarili junaka, vrednega izziva! No, kje je izziv?

Korak: Sovražniki

Sovražniki
Sovražniki

Za shranjevanje sprajtov sovražnikov bomo uporabili matrično strukturo. Za vrste sovražnikov bomo vzeli malo bližnjice in uporabili netopirje:) ne referenco koronavirusa, le netopirji lahko letijo, zato jim ne bo treba "simulirati" gravitacije, kot to počnemo z našim likom. Uporabite na ustvarjenem sprite vrste Enemy block, da postavite novonastale netopirje na naključno postavljeno ploščico (označeno z majhno belo oznako) in nastavite njihovo hitrost vx na -10 (počasi se premika desno). Nato v okviru posodobitve igre na vsakih 2000 ms blokov ponovimo po vsakem elementu sovražnikovega seznama in naključno spremenimo njihovo smer, po potrebi pa tudi obrnemo sprite netopirjev (da odražajo spremembo smeri gibanja). Končno dodamo sprite vrste Player, ki se prekriva z blokom drugih sovražnikov vrste Enemy, kjer preprosto preverimo, ali je bil igralec že zadet. Če ne bi odšteli enega življenja, nastavite zastavico zadetka na 1 (je zadeto) in zaženite časovnik. Ko mine 500 ms od zadnjega zadetka, spremenimo zastavico nazaj na 0. To naredimo, da se igralec po trku s sovražnikom ne izgubi preveč dragocenih življenj.

Preverimo, kako nam gre. No, prizor se zagotovo zdi živahnejši, saj vsi netopirji letijo naokoli in grizejo našega igralca. Zdaj potrebujemo orožje za junaška dejanja!

3. korak: orožje

Orožje
Orožje

Za orožje sem črpal navdih iz stare igre Nintendo o dveh bratih vevericah:) Dodamo zaboje zaboje na raven, podobno kot pri dodajanju sovražnikov. Inicializiramo tudi spremenljivko has_crate na -1, kar pomeni, da naš znak nima zaboja. Pri sprite vrste "Player" se prekriva z blokom "OtherSprite kind of Food", preverimo, ali že držimo zaboj, in če tega ne storimo, spremenljivko has_crate nastavimo na indeks sprite zaboja na seznamu. Nato v blok za posodabljanje igre premaknemo ta sprite skupaj z igralčevim sprajtom in če pritisnemo gumb A, spremenimo hitrost vx zaboja na 1200 ali -1200 (odvisno od smeri gibanja lika). Spremenljivko has_crate smo spet nastavili na -1 in spremenili vrsto sprite zaboja, ki je bil pravkar izstreljen v zrak, na Projektil.

Nazadnje moramo, da zaboji dejansko uničijo sovražnike, ko se izstrelijo (vendar ne, ko sovražniki samo naključno naletijo na zaboj! Zato smo zaboje dodelili za vnos hrane in ga spremenili v izstrelek le, ko so ga izstrelili) in se pri udarcu samodejno uničijo. stena. Za to uporabljamo drugega na sprite vrste projektila, ki se prekriva z blokom drugih sovražnikov vrste Enemy - v tem primeru uničimo oba sprajta in zvišamo rezultat za enega. Če izstrelek zadene steno, uničimo njegov duh.

Skoraj končano! Zdaj je mogoče igrati igro, vendar komaj še kakšen izziv - le ena raven in dokaj preprosta. Ročno bi lahko naredili več ravni ali napisali algoritem, ki bi za nas samodejno ustvaril te ravni - čeprav seveda ne bodo tako lepe kot ravni, ki jih je ustvaril človek.

4. korak: Neskončne dogodivščine

Neskončne dogodivščine
Neskončne dogodivščine
Neskončne dogodivščine
Neskončne dogodivščine
Neskončne dogodivščine
Neskončne dogodivščine

Funkcija za ustvarjanje naključne ravni je na začetku videti nekoliko strašljiva, vendar je v resnici preprost niz korakov za algoritemsko ustvarjanje nove ravni, tako da je nova raven sprejemljiva za igralne like. Najprej poskrbimo za dvig našega značaja na tisto novo raven - z uporabo prijaznih navzkrižij igralcev … na lokaciji - uporabimo ploščice vrat portala kot sprožilec na novo raven. V generirajoči ravni funkcijo inicializiramo spremenljivke vrstico, stolpec in možnost. Ustvarimo tudi nov zemljevid ploščic, enake velikosti kot prej, vendar prazen. Tu pa je malo opozorila - če želite uporabiti set… v vrstici mapmap … col…, mora imeti ploščica map ravno te ploščice --- to je nekoliko intuitivno in morda napaka v Makecode. Torej morate ustvariti zemljevid ploščic, vse vrste ploščic, ki jih želite uporabiti, postaviti v naključno generacijo in jih nato izbrisati.

Ročno smo postavili prvo ploščico (0x6) in predvajalnik nanjo. Nato 30 -krat ponovimo naslednji korak - naslednji korak je preprosta serija preverjanj True -False, ki odločajo o tem, ali bomo naslednji stolpec stolpca 1) na isti ravni kot prejšnji 2) eno navzgor ali 3) eno navzdol. Obstaja tudi zelo majhna možnost, da bo naslednja ploščica lava - teh si ne želimo preveč! Po vsaki ustvarjeni ploščici prostor pod njo napolnimo z lavo - samo zaradi lepote. Kot zadnji korak dodamo sovražnike in zaboje ter jih položimo na naključne drščene ploščice.

5. korak: Pustolovščina se začne

Pustolovščina se začne
Pustolovščina se začne

Voila! Končali smo našo platformo in naš junak se lahko odpravi na neskončno pustolovščino, premaga netopirje in uniči zaboje. če naletite na težave, lahko prenesete kodo iz našega skladišča GitHub.

To je le načrt in zagotovo je mogoče narediti nekaj izboljšav, na primer različne vrste sovražnikov, bonuse, boljšo raven ustvarjanja itd. Če naredite izboljšano različico igre, jo delite v spodnjih komentarjih! Za več informacij o igri Game in drugi strojni opremi za izdelovalce in učitelje STEM obiščite našo spletno stran https://tinkergen.com/ in se naročite na naše novice.

TinkerGen je ustvaril kampanjo Kickstarter za MARK (Make A Robot Kit), komplet robotov za poučevanje kodiranja, robotike, AI!

Priporočena: