Snøballkrig

Skrevet av: Geir Arne Hjelle

Kurs: Scratch
Tema: Blokkbasert, Spill, Animasjon
Fag: Matematikk, Programmering, Kunst og håndverk
Klassetrinn: 5.-7. klasse, 8.-10. klasse
Til lærerveiledningLast ned PDF

Introduksjon

I denne oppgaven vil vi lage et spill hvor det er om å gjøre å jage bort de slemme guttene ved å kaste snøball på dem. Underveis vil vi lære hvordan vi kan gjøre et spill mer utfordrende etterhvert ved at figurene vi spiller mot blir raskere og vanskeligere å jage bort.

Illustrasjon av et ferdig snøballkrig spill

Steg 1: En snøballkaster

Vi begynner med å lage oss en passelig bakgrunn, samt snøballkasteren som vi skal styre.

checkSjekkliste

  • Velg Tegn ny bakgrunn for å tegne en ny bakgrunn. Pass på at du bruker vektorgrafikk, og tegn en stor firkant som dekker hele bakgrunnen. Velg så en mørkeblå forgrunnsfarge og en lysere bakgrunnsfarge. Klikk på malingsspannet for å fylle firkanten med farge, og velg en overgang nederst til venstre. Klikk på bakgrunnen for å fylle den med farge.

    Velg nå hvit som forgrunnsfarge, og lag en litt mindre boks som dekker nedre del av bakgrunnen. Fyll også denne med passende farger.

    Bilde av en mulig snøballkrig bakgrunn

    Kall bakgrunnen for Spill.

  • når @greenFlag klikkes
    send melding [start v]
    

    Du har kanskje sett dette trikset tidligere. Dette gjør det enklere for oss å senere komme tilbake og legge på en startmeny og lignende.

  • når @greenFlag klikkes
    sett størrelse til (75) %
    begrens rotasjon [vend sideveis v]
    sett [hastighet v] til [5]
    

    På det grønne flagget legger vi innstillinger som skal gjelde for Helten gjennom hele spillet. Endre gjerne på størrelsen og hastigheten etterhvert som du tester spillet, slik at du finner innstillinger du liker.

  • når jeg mottar [start v]
    gå til x: (0) y: (-75)
    gjenta for alltid
    slutt
    

flagTest prosjektet

Klikk på det grønne flagget.

Steg 2: Mange snøballer

Det blir ingen snøballkrig uten snøballer. La oss lage kjempemange av dem! Med kram snø!

checkSjekkliste

  • når @greenFlag klikkes
    skjul
    sett størrelse til (40) %
    sett [hastighet v] til [10]
    
  • når jeg mottar [kast v]
    lag klon av [meg v]
    
  • når jeg starter som klon
    gå til [Helten v]
    pek i retning ([retning v] av [Helten v])
    vis
    gjenta til <berører [kant v]>
        gå (hastighet) steg
    slutt
    slett denne klonen
    

flagTest prosjektet

Klikk på det grønne flagget.

  • vent til <ikke <tast [mellomrom v] trykket?>>
    

    Helten-figuren før kast-meldingen sendes.

Steg 3: Slemme gutter

Nå skal vi se hvordan vi kan lage slemme gutter som prøver å ta oss. La oss jage dem bort med snøballer.

checkSjekkliste

  • når @greenFlag klikkes
    skjul
    gå til x: (0) y: (-70)
    begrens rotasjon [vend sideveis v]
    sett størrelse til (30) %
    sett [hastighet v] til [3]
    
  • når jeg mottar [start v]
    gjenta for alltid
        hvis <(tilfeldig tall fra (0) til (1)) = [0]>
            pek i retning (90 v)
            sett x til (-250)
        ellers
            pek i retning (-90 v)
            sett x til (250)
        slutt
        lag klon av [meg v]
        vent (tilfeldig tall fra (2) til (4)) sekunder
    slutt
    
  • Lag først en når jeg starter som klon-kloss hvor du først viser figuren, og deretter lager en gjenta for alltid-løkke hvor figuren beveger seg hastighet steg og deretter venter et lite øyeblikk, for eksempel 0.1 sekunder.

  • når jeg starter som klon
    gjenta for alltid
        hvis <berører [Helten v]?>
            send melding [slutt v]
            slett denne klonen
        slutt
        hvis <berører [Snøball v]?>
            slett denne klonen
        slutt
    slutt
    

    Grunnen til at disse må ligge i et eget skript er at det første skriptet venter litt mellom hver gang figuren tar et steg. Hadde vi lagt disse hvis-klossene på det skriptet ville vi bare sjekket om Skumlingen var truffet av en snøball innimellom ventingen. Ved å lage et eget skript sjekker vi dette hele tiden.

flagTest prosjektet

Klikk på det grønne flagget.

Steg 4: Telle poeng og avslutte spillet

Nå som vi nesten har et ferdig spill, vil vi også ha poeng!

checkSjekkliste

Vi har tidligere laget meldingen slutt som sendes ut når Helten blir tatt av en Skumling. Nå vil vi bruke denne til å avslutte spillet. Men først, la oss lage en meny og en bakgrunn som forteller oss at vi tapte.

  • Meny-bakgrunnen kan du lage en fin tittel. Skriv også Trykk 'S' for å starte.

    Slutt-bakgrunnen kan du skrive en passende melding for når spillet er slutt. Skriv også Trykk 'S' for å spille igjen.

  • når @greenFlag klikkes
    bytt bakgrunn til [Meny v]
    

    Deretter vil vi starte spillet når S trykkes:

    når [s v] trykkes
    send melding [start v]
    

    Pass også på at du bytter til bakgrunnen Spill når meldingen start mottas, og til bakgrunnen Slutt når meldingen slutt mottas.

flagTest prosjektet

Klikk på det grønne flagget.

Steg 5: Store, slemme gutter

Til slutt skal vi gjøre spillet vanskeligere jo lengre vi spiller

  • gjenta for alltid
        sett [Nivå v] til ((1) + ([gulv v] av ((Poeng) / (5))))
    slutt
    

    Funksjonen gulv runder nedover. Dermed sier vi at Nivå skal øke for hver femte Skumling vi jager vekk.

  • Lag et par nye variabler som gjelder for denne figuren: Slem og Liv. Slem vil si noe om hvor stor og slem den enkelte Skumlingen er. Ved å la dette være et tall mellom 1 og Nivå blir spillet vanskeligere etterhvert som Nivå øker. For eksempel kan du legge til disse klossene på Skumling sitt hovedskript:

    når jeg starter som klon
    sett [Slem v] til (tilfeldig tall fra (1) til (Nivå))
    sett [Liv v] til (Slem)
    endre [hastighet v] med (Slem)
    endre [farge v] effekt med ((10) * (Slem))
    endre størrelse med ((5) * (Slem))
    vis
    gjenta for alltid
        gå (hastighet) steg
        vent (0.1) sekunder
    slutt
    
  • gjenta for alltid
        sett [Nivå v] til ((1) + ([gulv v] av ([kvadratrot v] av ((Poeng) / (3)))))
    slutt
    

    Da vil vi fortsatt øke nivået for omtrent hver femte Skumling som jages bort.

flagTest prosjektet

Klikk på det grønne flagget.

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!