INHOUDSOPGAWE:

Battle City Remake op GameGo With Makecode Arcade: 4 stappe (met foto's)
Battle City Remake op GameGo With Makecode Arcade: 4 stappe (met foto's)

Video: Battle City Remake op GameGo With Makecode Arcade: 4 stappe (met foto's)

Video: Battle City Remake op GameGo With Makecode Arcade: 4 stappe (met foto's)
Video: Giveaway: GameGo (Gaming Console) 2024, November
Anonim
Image
Image

GameGo is 'n Microsoft Makecode -versoenbare retro -draagbare konsole wat ontwikkel is deur TinkerGen STEM education. Dit is gebaseer op STM32F401RET6 ARM Cortex M4 -chip en is gemaak vir STEM -opvoeders of net mense wat daarvan hou om retro -videospeletjies te geniet. U kan hierdie tutoriaal volg en die spel in die Makecode Arcade -simulator probeer en dit dan op GameGo laat loop.

In hierdie artikel gaan ons probeer om 'n klassieke Battle City tank shooter game te herskep, oorspronklik vervaardig en gepubliseer in 1985 deur Namco vir Nintendo Entertainment System (NES). In die oorspronklike spel beheer die speler 'n tenk en skiet projektiele om vyandelike tenks te vernietig. Die vyand tenks probeer om die speler se basis, sowel as die speler se tenk self, te vernietig. Ons sal die speletjie 'n bietjie aanpas om die blokprogrammeringspraktyke beter te akkommodeer met GameGo, maar ons remake sal steeds baie ooreenstem met die oorspronklike spel. Laat ons begin!

Voorrade

GameGo

Stap 1: Ons alter -ego - geel tenk

Ons Alter -ego - geel tenk
Ons Alter -ego - geel tenk

Maak Makecode Arcade oop by https://arcade.makecode.com/ en klik op 'n nuwe projek. Ons begin met die maak van ons alter-ego die geel tenk. Kies Stel mySprite op 'n goeie spelerblok en teken 'n geel tenk na bo as ons beginsprite, plaas die blok binne -in die beginblok. Voeg skuif mySprite by met knoppiesblok. Nou het ons 'n tenk waarmee ons met knoppies in simulasie kan beweeg! Fantasties, maar dit kyk altyd in dieselfde rigting, selfs as ons afwaarts of sywaarts beweeg …

Om dit reg te stel, laat ons nog vier blokke byvoeg, een vir elke rigtingknoppie. Skep 'n nuwe veranderlike, genaamd rigting - ons bespaar die bewegingsrigting van ons tenk daarin, 100 sal ooreenstem met af, -100 sal ooreenstem met omhoog, 200 vir regs en -200 vir links. Waarom hierdie getalle? U sal later sien as ons die projektiele byvoeg wat ons tenk sal afvuur. Die logika binne elke vier van hierdie blokke is baie eenvoudig - ons kyk of die nuwe rigting (met die druk op die knoppie) dieselfde is as die rigting vantevore. As dit die geval is, doen ons basies geen veranderinge nie. As dit nie die geval is nie, verander ons die tenk se sprite, en as ons afwaarts en links draai, draai ons die beeld van die sprite om nie meer sprites te trek nie. Laastens, laat ons die beginwaarde van die rigting toewys aan -100 (tenk opwaarts), want dit is hoe ons tenk die spel begin. Probeer nou om die geel tenk te skuif, die sprite verander nou volgens die rigting van die beweging! Uitstekend, laat ons nou koeëls byvoeg.

Ons sal koeëls met 'n stel projektiel na 'n projektiel skiet (trek 'n klein silwer vierkantjie vir die sprite) uit mySprite met vx vy -snelhede. Binne -in op knoppie 'n Blok wat ingedruk word, moet ons kyk of die rigting se absolute waarde is om te sien of die geel tenk links/regs op/af wys. Ons gaan dan voort met die vuur met die projektiel met die snelheidsveranderingsrigting -daarom het ons -100/100/-200/200 vir rigtingwaardes gehad.

Nou het ons 'n geel tenk wat projektiele kan afvuur en beweeg. As geel gesimuleerde tenks 'n gevoel sou hê, sou dit beslis eensaam voel in hierdie leë leemte sonder vyande en dinge om te doen. Dus, vir die volgende stap, laat ons vyande byvoeg sodat dit tyd kan verbygaan.

Stap 2: Bring die vyande na vore

Bring die vyande uit
Bring die vyande uit
Bring die vyande uit
Bring die vyande uit

Ons begin hierdie stap deur 'n klomp nuwe veranderlikes te skep: twee skikkings (een om vyandige sprites vas te hou en 'n ander een om vyand se rigtings vas te hou), tydsveranderlike vir die stoor van die tydperk tussen paaie, vyandtelling vir die berging van maksimum aantal vyande op dieselfde tyd. Ons voeg ook twee projektiele (projektiel en vyand projektiel) by die beginblok in - wat ons sal help om later 'n fout te vermy.

Vervolgens skep ons elke speletjie -opdatering elke … ms blok, voeg spawn_time veranderlike daar in. Die logika binne -in die blok is eenvoudig - as die totale aantal vyande op die slagveld minder is as die maksimum toegelate aantal vyande, voeg 'n vyand by vyand_sprite_list en voeg by 200 (gaan regs) rigting vir daardie vyand.

In die on -created sprite of kind Enemy -blok voeg ons 'n paar grafiese effekte by, plaas dit op 'n ewekansige leë teël en noem pick_direction -funksie vir hierdie sprite. In 'n ander soort vyand tref muur, noem ons dieselfde funksie, pick_direction.

Wat is in daardie funksie? Hier begin dinge 'n bietjie ingewikkeld raak, so hou vas. Daar is 'n 50 persent kans dat die vyand tenk styg en 50 persent daarvan - ons verander die sprite dienooreenkomstig. Die enigste truuk hier is dat ons ook die waarde wat ooreenstem met die spesifieke vyftenk in die vyand_directions_list na die nuwe rigting moet verander, sodat ons dit in die regte rigting kan afskiet. Daarvoor vind ons die indeks van die vyandige sprite in die vyandige_sprite_lys en verander die waarde van die item in die vyandelike_rigtingslys.

Laastens, laat ons skote byvoeg. Ons voeg elke blok van 500 ms 'n nuwe opdatering by vir die spel en plaas 'n item in die vyandige_sprite_lys. Met 'n kans van 30% sal 'n vyandige sprite vyandelike projektiel in sy bewegingsrigting afvuur.

As ons die spel nou in simulasie begin, kan ons sien dat ons geel tenk en vyand tenks op dieselfde punt verskyn en in die leë ruimte gaan. Ons kan skiet en hulle kan ons geel tenk skiet, maar niks sou gebeur nie. Dit voel nog steeds sonder betekenis:) Laat ons die versierings en spelmeganika as die laaste stap byvoeg.

Stap 3: 42 van die spel

42 van die spel
42 van die spel
42 van die spel
42 van die spel
42 van die spel
42 van die spel

Ons gaan hierdie stap begin deur lewe en telling by die Info -oortjie te voeg en die lewe op 10 te stel en op nul te score. Dan voeg ons 'n blokstelteëlkaart by …. Teken die lêerkaart om te lyk soos u op die kiekie hierbo sien. Moenie vergeet om die mure by te voeg nie!

Kom ons voeg by sprite of kind Projektiel oorvleuel ander Spite of kind Player - dit is wanneer die vyand se koeëls ons geel tenk tref. Ons moet seker maak dat hierdie projektiele die koeëls van die vyand is en nie ons eie nie, dus sal ons byvoeg dat as die toestand binne 'n blok is en as dit waar word, ons dit aftrek van die lewensgetal. Soortgelyk daaraan, in 'n ander blok op 'n soort sprite Projekiel oorvleuel ander Vrede van soort Vyand maak ons seker dat die projektiel 'n projektiel uit 'n geel tenk is en as hierdie toestand as Waar beskou word, vernietig ons ander Sprite (die vyand tenk), verwyder dit uit die lys van die vyandige_sprite_lys en voeg een by om te score.

Die laaste ding is oorwinning en nederlaagstoestande - vir oorwinning kyk ons of die telling hoër is of gelyk is aan 10 in 'n ewige blok. As dit die geval is, wys ons die oorwinningsskerm. En in die life zero -blok wys ons die Game Over -skerm.

Probeer dit nou in die simulasie om te sien of die spel soos verwag is. Laai dit dan op na GameGo en geniet dit om vyandelike tenks te verpletter!

Stap 4: Eindelose spel en verbeterings

Eindelose spel en verbeterings
Eindelose spel en verbeterings

In ons GitHub -bewaarplek kan u twee lêers vir Makecode -arcade aflaai - die een is presies dieselfde as wat u sou kry as u hierdie instruksies volg, en die ander een is 'n opgegradeerde weergawe, wat ewekansige vlakvordering veroorsaak het. Dit het 10 vlakke, elkeen word willekeurig gegenereer met 'n groter aantal vyande op elke opeenvolgende vlak.

En natuurlik is daar nog meer dinge wat u of u studente boonop by die spel kan voeg! Daar is beter musiek, breekbare mure, verskillende oorwinningstoestande en so meer!

As u 'n verbeterde weergawe van die spel maak, deel dit dan in die kommentaar hieronder! Vir meer inligting oor GameGo en ander hardeware vir vervaardigers en STEM -opvoeders, besoek ons webwerf, https://tinkergen.com/ en teken in op ons blog.

TinkerGen het 'n Kickstarter -veldtog begin vir MARK (Make A Robot Kit), 'n robotstel vir die onderrig van kodering, robotika, AI!

Aanbeveel: