Asteroids
Skrevet av: Geir Arne Hjelle
Oversatt av: Gro Anette Vestre
Introduksjon
På slutten av 1970-talet ga Atari ut to spel der ein skulle kontrollera eit romskip. Det første var Lunar Lander, men dette vart utkonkurrert av Asteroids som Atari ga ut nokre månedar seinere. Spela var faktisk så like at dei kunne gjenbruke mykje av teknologien. Me skal gjera det same! Du må derfor ha laga Lunar Lander før du startar på dette prosjektet. I Asteroids er målet å beskytta romskipet mot asteroidar ved å skyta dei i småbitar.

Oversikt over prosjektet
Mesteparten av kodinga av Asteroids skal du gjera sjølv (og noko har du allereie gjort). I Asteroids vil me spesielt sjå på nokre av måtane ein kan gjenbruke kode i Scratch.
Plan
Steg 1: Enda eit flygande romskip
I Lunar Lander laga me eit flott romskip. No skal me sjå korleis me kan bruka det same romskipet i dette prosjektet.
Du veit sikkert at du kan remikse andre sine Scratch-prosjekt. Du får då moglegheit til å laga din eigen versjon av noko andre har gjort, og spesielt kan du gjenbruke kode andre har skrive tidlegare.
Nå skal me sjå på eit triks for å gjenbruke kode me sjølv har laga tidlegare. Ved å bruke Ryggsekken
kan ein kopiera figurar og kode mellom forskjellige prosjekt. Me vil derfor først kopiera romskipet me laga i Lunar Lander.
Sjekkliste
-
Du vil no sjå at alle draktane, alle variablane og alle skripta til romskipet er kopiert over. Du kan rydda opp litt ved å slette skript som ikkje har noko med kontrollen over romskipet å gjera, til dømes om du har eit
Sjekk landing
-skript treng me ikkje det i dette spelet. -
Dette gjer me ved ganske enkle
viss
-testar. Det me må hugse på er atx
-koordinatane på skjermen går fra-240
til240
, mensy
-koordinatane ligg mellom-180
og180
. Sidan Scratch passar på at figurar ikkje går heilt av skjermen flyttar me dei litt innanfor skjermkanten:når eg får meldinga [Nytt spel v] gjenta for alltid viss <(x-posisjon) < (-235)> endra x med (470) slutt viss <(x-posisjon) > (235)> endra x med (-470) slutt viss <(y-posisjon) < (-175)> endra y med (350) slutt viss <(y-posisjon) > (175)> endra y med (-350) slutt slutt
Steg 2: Romskipet kan skyte
Romskipet vårt vil snart fly inn i ein asteroidesverm, så me må montera rakettar som kan sprengje unna asteroidane.
Sjekkliste
-
Lag eit skript på skot-figuren som starter på
Nytt spel
-meldingen. Skriptet kan bestå av eingjenta for alltid
-løkke, der du testar om mellomromtasten er trykka. Dersom eit skot skal avfyrast kan du først la skotetgå til
romskipet og deretter peike i same retning som romskipet. Dette siste kan du gjera med ein kombinasjon avpeik i retning
,retning av
ogvend
-klosser. Til slutt kan dulage ein klon
av figuren. -
viss <tasten [mellomrom v] er trykt?> vent til <ikke <tasten [mellomrom v] er trykt?>> ... slutt
-
For å kopiere skript mellom figurar kan du bruka ryggsekken på same måte som tidlegare. Ein litt raskare metode er å berre dra skriptet du vil kopiere til den figuren du vil kopiere til.
Kopier koden for å warp'e rundt skjermen fra romskipet til skot-figuren.
Steg 3: Pass deg for asteroidane
Då er det på tide å laga ein asteroidesverm. Noko av det som er kult med Asteroids er at asteroidane blir skutt i småbiter når du skyt på dei, og ein må fortsatt passa seg for og skyte desse mindre asteroidane. Me vil kode dette ved å bruke kloner i forskjellige storleikar.
Sjekkliste
-
-
set storleik til ((storleik) / (2)) %
Viss
storleiken
framleis er større enn til dømes 10 kan du laga eit par nye kloner av denne mindre asteroiden. Til slutt kan duslette denne klonen
uansett kor stor den er. -
viss <rører [Asteroide v] ?> vent (0.01) sekund slett denne klonen slutt
Steg 4: Vidareutvikling av spelet
Du har no laga ein enkel variant av Asteroids. Men prøv å gjere spelet kjekkare ved å vidareutvikle det. Du bestemmer sjølv korleis du vil jobba vidare, men nedanfor er nokre idear som kanskje kan vera til inspirasjon?
Idear til vidareutvikling
-
rund av ((100) / (storleik))
-
For å vite når du kan gå vidare til eit nytt nivå må du telje kor mange asteroidar som flyr rundt. Lag derfor ein variabel
Antal asteroider
som du aukar med 1 når ein asteroidestartar som klon
. Deretter må variabelen minka med 1 når klonen vert sletta.Vidare brukar du ein
Nivå
-variabel som held styr på kva nivå spelaren har kome til.
Forbedre denne siden
Funnet en feil? Kunne noe vært bedre?
Hvis ja, vennligst gi oss tilbakemelding ved å lage en sak på Github eller fiks feilen selv om du kan. Vi er takknemlige for enhver tilbakemelding!