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.
Steg 1: En snøballkaster
Vi begynner med å lage oss en passelig bakgrunn, samt snøballkasteren som vi skal styre.
Sjekkliste
-
Start et nytt prosjekt. Slett kattefiguren.
-
La oss lage en bakgrunn. Til dette spillet trenger vi en ganske enkel bakgrunn med litt vinterfølelse. Den kan vi tegne selv:
Velg 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.
Kall bakgrunnen for
Spill
. -
Legg følgende lille skript på scenen:
når grønt flagg 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.
-
Neste steg er å finne en passende figur som vi kan styre rundt og kaste snøballer med. Vi har brukt snømannen,
Fantasi/Snowman
, men du kan bruke en figur du liker. Gi figuren navnetHelten
. -
Lag en ny variabel,
hastighet
, som gjelder kun for denne figuren, og lag dette skriptet:når grønt flagg 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å kan vi lage selve hovedløkken til Helten. Lag først en løkke som starter på meldingen
start
:når jeg mottar [start v] gå til x: (0) y: (-75) for alltid slutt
-
Inne i løkken trenger vi to
hvis
-klosser som flytter Heltenhastighet
steg mot høyre eller venstre når piltastene høyre og venstre er trykket. Lag disse selv. -
Til slutt lager du en
hvis
-kloss hvor du sender ut meldingenkast
når mellomrom-tasten trykkes.
Test prosjektet
Klikk på det grønne flagget.
-
Beveger figuren din seg rundt på scenen når du trykker høyre og venstre piltast? Det skal foreløbig ikke skje noe når du trykker mellomrom, siden ingen figurer svarer på
kast
-meldingen. -
Du må sannsynligvis endre litt på
y
-posisjonen figuren din starter på, slik at det ser naturlig ut i forhold til bakgrunnen. -
Hvis du har en figur med flere drakter kan du også bruke
neste drakt
-klosser for å animere figuren din slik at den beveger seg mer naturlig.
Steg 2: Mange snøballer
Det blir ingen snøballkrig uten snøballer. La oss lage kjempemange av dem! Med kram snø!
Sjekkliste
-
Tegn en ny figur. Bruk sirkelverkøyet til å tegne en liten hvit sirkel, fargelegg den deretter slik at den blir helt hvit. Trykk på og pass på at senterpunktet er satt midt på snøballen. Kall figuren
Snøball
. -
På samme måte som for Helten setter vi først opp noen standardinnstillinger for snøballen. Lag en variabel
hastighet
som kun gjelder for denne figuren:når grønt flagg klikkes skjul sett størrelse til (40) % sett [hastighet v] til [10]
-
Vi bruker
skjul
fordi vi vil lage kloner (kopier) av denne snøballen som vi kaster av gårde. Dette er et veldig nyttig triks i Scratch. Selve koden som reagerer påkast
-meldingen er veldig enkel.når jeg mottar [kast v] lag klon av [meg v]
-
Selve oppførselen til hver enkelt snøball programmerer vi så på en
når jeg starter som klon
-kloss.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
Test prosjektet
Klikk på det grønne flagget.
-
Hva skjer når du trykker mellomrom-tasten? Kastes det snøballer i riktig retning?
-
Det ser kanskje ikke ut som om Helten kaster snøballene med hendene? Du kan legge på noen
Bevegelse
-klosser rett før duvis
er snøballen for at det skal se bedre ut. -
Som en liten utfordring kan du også prøve å legge på litt effekt av tyngdekraften på snøballen ved å endre litt på
y
mens snøballen flyr. -
Et lite problem er at Helten vår er for flink til å kaste snøball! Hver gang vi trykker mellomrom blir det kastet mange snøballer. Dette kan vi løse ganske enkelt ved å vente til mellomrom-tasten er sluppet før vi kaster snøballen. Legg til
vent til <ikke <tast [mellomrom v] trykket?>>
på 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.
Sjekkliste
-
Lag en ny figur. Vi har brukt
Mennesker/Boy3 walking
, men du kan bruke den figuren du liker. Kanskje det er morsommere å ha snøballkrig mot et monster? Kall figurenSkumling
. -
På samme måte som for snøballene vil vi lage kloner av Skumling. Men først bestemmer vi hvordan han skal se ut. Lag igjen en variabel
hastighet
som gjelder kun for denne figuren. Deretter,når grønt flagg klikkes skjul gå til x: (0) y: (-70) begrens rotasjon [vend sideveis v] sett størrelse til (30) % sett [hastighet v] til [3]
-
Vi vil la klonene dukke opp med litt tilfeldig mellomrom, og fra begge sider av skjermen.
når jeg mottar [start v] 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
-
På samme måte som for snøballene må vi også bestemme oppførselen til hver enkelt Skumling.
Lag først en
når jeg starter som klon
-kloss hvor du først viser figuren, og deretter lager enfor alltid
-løkke hvor figuren beveger seghastighet
steg og deretter venter et lite øyeblikk, for eksempel 0.1 sekunder. -
Deretter lager vi en ny
når jeg starter som klon
-kloss hvor vi undersøker om vi treffer enten en snøball eller Helten.når jeg starter som klon 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.
Test prosjektet
Klikk på det grønne flagget.
-
Dukker det opp skumlinger? Kommer de fra begge sider? Går de mot midten?
-
Hva skjer når en Skumling blir truffet av en Snøball? Du kan kanskje legge på en passende lydeffekt og animasjon før klonen slettes? Vi ser også at snøballen flyr videre etter at den har truffet en Skumling. Prøv å endre i skriptet for Snøball slik at snøballen også blir borte.
-
Hva skjer når en Skumling tar Helten?
Steg 4: Telle poeng og avslutte spillet
Nå som vi nesten har et ferdig spill, vil vi også ha poeng!
Sjekkliste
-
Å telle poeng er ganske lett. Lag først en variabel som heter
Poeng
og la den gjelde for alle figurer. La variabelen også vises på scenen, slik at vi ser hvor mange poeng vi har fått. -
Pass på at
Poeng
blir satt til 0 når meldingenstart
sendes, for eksempel med et skript på scenen. -
Endre
Poeng
med 1 når en Skumling blir truffet av en snøball.
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.
-
Klikk på
Scene
til venstre forFigurer
, og velgBakgrunner
-fanen. Lag to kopier av bakgrunnen din og kall dem henholdsvisMeny
ogSlutt
.På
Meny
-bakgrunnen kan du lage en fin tittel. Skriv ogsåTrykk 'S' for å starte
.På
Slutt
-bakgrunnen kan du skrive en passende melding for når spillet er slutt. Skriv ogsåTrykk 'S' for å spille igjen
. -
Endre nå litt på skriptene på scenen. Først vil vi bare vise menyen når det grønne flagget klikkes:
når grønt flagg 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 meldingenstart
mottas, og til bakgrunnenSlutt
når meldingenslutt
mottas. -
Til slutt må vi passe på at spillet faktisk avsluttes etter at
slutt
-meldingen er sendt. Legg på skript for åslette denne klonen
på Snøball og Skumling, og skript for å skjule Helten nårslutt
mottas.
Test prosjektet
Klikk på det grønne flagget.
-
Fungerer programflyten? Starter spillet når du trykker
S
? Avsluttes spillet når Helten blir fanget? Vises de riktige bakgrunnene når de skal? -
Legg gjerne på litt lydeffekter og enkle animasjoner der det passer.
Steg 5: Store, slemme gutter
Til slutt skal vi gjøre spillet vanskeligere jo lengre vi spiller
-
Vi innfører først en ny variabel
Nivå
som skal gjelde for alle figurer. Denne styrer hvor vanskelig spillet skal være. La den gjerne være synlig. -
Vi regner ut nivå basert på
Poeng
. Utvid skriptet ditt som mottarstart
-meldingen på scenen med den følgende løkken:for alltid sett [Nivå v] til ((1) + ([gulv v] av ((Poeng) / (5)))) slutt
Funksjonen
gulv
runder nedover. Dermed sier vi atNivå
skal øke for hver femte Skumling vi jager vekk. -
Nå kan vi bruke
Nivå
til å lage Skumlingene slemmere. For eksempel kan de bli større, gå raskere og kanskje trenge flere snøballer før de blir borte.Lag et par nye variabler som gjelder for denne figuren:
Slem
ogLiv
.Slem
vil si noe om hvor stor og slem den enkelte Skumlingen er. Ved å la dette være et tall mellom 1 ogNivå
blir spillet vanskeligere etterhvert somNivå
ø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 for alltid gå (hastighet) steg vent (0.1) sekunder slutt
-
For at en Skumling skal tåle flere snøballer må vi også endre litt på hva som skjer når han blir truffet. I stedet for å bare slette klonen vil vi endre
Liv
med -1, og deretter gi poeng og slette klonen bare omLiv
er 0. -
Vi bør kanskje gi flere poeng for å jage bort de slemme Skumlingene? Dette gjør du ved å endre
Poeng
medSlem
når en Skumling jages bort. -
Om vi får mer enn ett poeng for hver Skumling bør vi også endre på hvordan vi regner ut
Nivå
. Hvis ikke vil spillet bli veldig fort vanskeligere etterhvert. Du kan for eksempel bruke denne utregningen: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.
Test prosjektet
Klikk på det grønne flagget.
-
Blir spillet vanskeligere etterhvert? Prøv å endre på de forskjellige variablene og innstilingene vi har laget slik at spillet blir passe vanskelig.
-
Har du flere ideer til hvordan spillet kan gjøres enda morsommere? Prøv dem ut!