Level 4Asteroids

Skrevet av: Geir Arne Hjelle

Oversatt av: Gro Anette Vestre

Kurs: Scratch
Tema: Blokkbasert, Spill, Animasjon
Fag: Matematikk, Programmering, Kunst og håndverk
Klassetrinn: 5.-7. klasse, 8.-10. klasse
Bilde av BokmålPå Bokmål

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.

Illustrasjon av eit ferdig Asteroids-spel

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.

checkPlan

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.

checkSjekkliste

  • Bilete som syner korleis du dreg Romskip-kopien frå ryggsekken i Scratch

    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 at x-koordinatane på skjermen går fra -240 til 240, mens y-koordinatane ligg mellom -180 og 180. 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.

checkSjekkliste

  • Lag eit skript på skot-figuren som starter på Nytt spel-meldingen. Skriptet kan bestå av ein gjenta for alltid-løkke, der du testar om mellomromtasten er trykka. Dersom eit skot skal avfyrast kan du først la skotet gå til romskipet og deretter peike i same retning som romskipet. Dette siste kan du gjera med ein kombinasjon av peik i retning, retning av og vend-klosser. Til slutt kan du lage 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.

checkSjekkliste

  • Bilete av ein asteroidefigur i Scratch
  •     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 du slette 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?

checkIdear 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 asteroide startar 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.

Lisens: CC BY-SA 4.0

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!