Cuprins:

Battle City Remake pe GameGo With Makecode Arcade: 4 pași (cu imagini)
Battle City Remake pe GameGo With Makecode Arcade: 4 pași (cu imagini)

Video: Battle City Remake pe GameGo With Makecode Arcade: 4 pași (cu imagini)

Video: Battle City Remake pe GameGo With Makecode Arcade: 4 pași (cu imagini)
Video: КЕЙС БАТЛ НОВЫЙ КЕЙС для АБУЗА с ЛОУ БАЛАНСА! CASE-BATTLE НОВАЯ ТАКТИКА для ЛОУ БАЛАНСА 2024 ГОДА! 2024, Iulie
Anonim
Image
Image

GameGo este o consolă portabilă de jocuri retro compatibilă cu Microsoft Makecode, dezvoltată de TinkerGen STEM education. Se bazează pe cipul STM32F401RET6 ARM Cortex M4 și este conceput pentru educatorii STEM sau doar persoanelor cărora le place să se distreze creând jocuri video retro. Puteți urma acest tutorial și puteți încerca jocul în Makecode Arcade simulator și apoi îl puteți rula pe GameGo.

În acest articol, vom încerca să recreăm un joc clasic de tragere cu tancuri Battle City, produs inițial și publicat în 1985 de Namco pentru Nintendo Entertainment System (NES). În jocul original, jucătorul controlează un tanc și trage proiectile pentru a distruge tancurile inamice. Tancurile inamice încearcă să distrugă baza jucătorului, precum și tancul jucătorului însuși. Vom aduce unele modificări jocului pentru a acomoda mai bine practicile de programare a blocurilor cu GameGo, dar remake-ul nostru va păstra în continuare o mare similaritate cu jocul original. Sa incepem!

Provizii

GameGo

Pasul 1: Alter ego-ul nostru - Rezervorul galben

Alter-ego-ul nostru - Yellow Tank
Alter-ego-ul nostru - Yellow Tank

Deschideți Makecode Arcade la https://arcade.makecode.com/ și faceți clic pe noul proiect. Vom începe să fac din alter-ego-ul nostru rezervorul galben. Alege Set mySprite to sprite of kind player player și desenează un rezervor galben orientat în sus ca sprite-ul nostru de pornire, pune acel bloc în interiorul blocului de start. Adăugați mișcare mySprite cu bloc de butoane. Acum avem un rezervor pe care îl putem deplasa cu butoane în simulare! Minunat, dar se confruntă întotdeauna cu aceeași direcție, chiar și atunci când ne deplasăm în jos sau lateral …

Pentru a corecta acest lucru, să adăugăm încă patru blocuri, unul pentru fiecare buton de direcție. Creați o nouă variabilă, numită direcție - vom salva direcția de mișcare a rezervorului nostru în el, 100 va corespunde în jos, -100 va corespunde în sus, 200 pentru dreapta și -200 pentru stânga. De ce aceste numere? Veți vedea mai târziu, când vom adăuga proiectilele pe care tancul nostru le va trage. Logica din fiecare patru dintre aceste blocuri este foarte simplă - verificăm dacă direcția nouă (din apăsarea butonului) este aceeași cu direcția de mai înainte. Dacă este, practic nu facem nicio modificare. Dacă nu este, schimbăm sprite-ul rezervorului și, în cazul în care cu direcția în jos și în stânga, răsucim imaginea spritei pentru a evita desenarea spritelor suplimentare. În cele din urmă, să atribuim valoarea inițială a direcției la -100 (rezervor în sus), deoarece așa începe rezervorul nostru jocul. Încercați să mutați rezervorul galben acum, sprite-ul se va schimba în funcție de direcția mișcării acum! Excelent, acum să adăugăm gloanțe.

Vom trage gloanțe cu proiectil setat la proiectil (desenăm un pătrat mic de argint pentru acel sprite) din mySprite cu viteze vx vy. În interiorul butonului buton A apăsat, trebuie să verificăm valoarea absolută a direcției pentru a vedea dacă rezervorul galben este orientat în sus / în jos în stânga / dreapta. Apoi continuăm să tragem proiectilul cu variabila viteză de direcție - de aceea am avut -100 / 100 / -200 / 200 pentru valorile direcției.

Acum avem un rezervor galben care poate trage proiectile și se poate mișca. Dacă tancurile galbene simulate ar putea avea senzația, s-ar simți cu siguranță singur în acest gol gol, fără dușmani și lucruri de făcut. Deci, pentru pasul următor să adăugăm dușmani pentru ca acesta să treacă timpul.

Pasul 2: Scoateți dușmanii

Scoateți dușmanii
Scoateți dușmanii
Scoateți dușmanii
Scoateți dușmanii

Vom începe acest pas creând o grămadă de noi variabile: două matrice (una pentru ținerea spritelor inamice și alta pentru ținerea direcțiilor inamice), variabilă de timp pentru spawn pentru stocarea perioadei de timp dintre spawns, număr de inamici pentru stocarea numărului maxim de dușmani în același timp. Vom adăuga, de asemenea, două proiectile (proiectil și proiectil inamic) care trag în blocul de pornire - care ne vor ajuta să evităm o eroare mai târziu.

Apoi creăm la actualizarea jocului fiecare … bloc MS, introduceți variabila spawn_time acolo. Logica din interiorul blocului este simplă - dacă numărul total de dușmani de pe câmpul de luptă este mai mic decât numărul maxim permis de dușmani, adăugați un inamic la enemic_sprite_list și adăugați 200 (merge dreapta) direcția pentru inamicul respectiv.

Apoi, în blocul de dușman creat pe sprite, adăugăm câteva efecte grafice, îl plasăm pe o țiglă goală aleatorie și apelăm funcția pick_direction pentru acest sprite. Pe sprite de genul Enemy hits wall, numim aceeași funcție, pick_direction.

Ce este în această funcție? Aici lucrurile încep să se complice puțin, așa că țineți-vă. Există 50% șanse ca tancul inamic să urce și 50% din acesta să coboare - schimbăm sprite-ul în consecință. Singurul truc aici este că trebuie, de asemenea, să schimbăm valoarea corespunzătoare acelui tanc inamic din lista_direcții_inamic_ în noua direcție, așa că ar trebui să tragem gloanțe în direcția corectă. Pentru aceasta găsim indicele sprite inamic în enemic_sprite_list și schimbăm valoarea acelui articol în lista de direcții inamic.

În cele din urmă, să adăugăm fotografii. Adăugăm o altă actualizare a jocului la fiecare bloc de 500 ms și punem un element pentru enemic_sprite_list. Cu 30% șanse ca un sprite inamic să tragă proiectil inamic în direcția de mișcare.

Dacă lansăm jocul în simulare acum, putem vedea tancurile noastre galbene și tancurile inamice apărând în același punct și mergând în spațiul gol. Putem trage și ei pot trage cu tancul nostru galben, dar nu s-ar întâmpla nimic. Se simte atât de lipsit de sens încă:) Să adăugăm decorațiunile și mecanica jocului ca ultim pas.

Pasul 3: 42 din joc

42 din joc
42 din joc
42 din joc
42 din joc
42 din joc
42 din joc

Vom începe acest pas adăugând viață și scor din fila Info și setând viața la 10 și scorând la zero. Apoi adăugăm harta plăcilor setului de blocuri la …. Desenați harta fișierului pentru a arăta așa cum vedeți în captura de ecran de mai sus. Nu uitați să adăugați pereții!

Să adăugăm pe sprite de tip Proiectil se suprapune altui jucător de tip Sprite - acesta este momentul în care gloanțele inamicului au lovit tancul nostru galben. Trebuie să ne asigurăm că aceste proiectile sunt gloanțe ale inamicului și nu ale noastre, așa că vom adăuga că dacă condiția din bloc și dacă se evaluează ca fiind Adevărat, atunci scădem una din numărul de vieți. Similar cu acesta, într-un alt bloc de sprite de gen, proiectilul se suprapune altui dușman de tip dușman, ne asigurăm că proiectilul este un proiectil din tancul galben și dacă această condiție este evaluată ca fiind adevărată, distrugem alt Sprite (tancul inamic), îl eliminăm din listă din enemic_sprite_list și adăugați unul la scor.

Ultimul lucru este condițiile de victorie și înfrângere - pentru victorie, vom verifica dacă scorul este mai mare sau este egal cu 10 în blocul pentru totdeauna. Dacă este, atunci arătăm ecranul victoriei. Și în blocul Life zero, afișăm ecranul Game Over.

Acum, încercați-l în simulare pentru a vedea dacă jocul rulează așa cum era de așteptat. Apoi încărcați-l pe GameGo și bucurați-vă de zdrobirea tancurilor inamice!

Pasul 4: Joc fără sfârșit și îmbunătățiri

Joc fără sfârșit și îmbunătățiri
Joc fără sfârșit și îmbunătățiri

În depozitul nostru GitHub puteți descărca două fișiere pentru Makecode arcade - unul este exact același lucru pe care l-ați obține dacă urmați acest instructable și celălalt este versiunea actualizată, care a generat aleatoriu progresie de nivel. Are 10 niveluri, fiecare este generat aleatoriu cu un număr crescut de dușmani în fiecare nivel succesiv.

Și, desigur, există și mai multe lucruri pe care dvs. sau studenții dvs. le puteți adăuga la joc! Există muzică mai bună, ziduri care se pot sparge, diferite condiții de victorie și așa mai departe!

Dacă faceți o versiune îmbunătățită a jocului, împărtășiți-o în comentariile de mai jos! Pentru mai multe informații despre GameGo și alte componente hardware pentru producători și educatori STEM, vizitați site-ul nostru web, https://tinkergen.com/ și abonați-vă la blogul nostru.

TinkerGen a început o campanie Kickstarter pentru MARK (Make A Robot Kit), un kit robot pentru predarea codificării, roboticii, AI!

Recomandat: