Introduksjon
Hoppehelt er litt inspirert av musikkspillet Guitar Hero. I Hoppehelt skal man kontrollere flere helter samtidig mens de hopper over fargede bokser som lager lyd. Gjennom spillet Hoppehelt vil vi se litt nærmere på hvordan kloner brukes når man programmerer i Scratch. Vi vil til og med se eksempler på kloner av kloner!
Steg 1: Streken
Vi begynner spillet vårt ved å lage en veldig enkel bakgrunn.
Sjekkliste
-
Start et nytt prosjekt, og slett kattefiguren.
-
Tegn en ny bakgrunn som består av en ensfarget rett strek ganske langt ned på skjermen. Bruk vektorgrafikk. Dette er bakken som vår helt skal løpe på.
-
For å enklere legge på en tittel senere lager vi en
Nytt spill
-melding på scenen:når grønt flagg klikkes send melding [Nytt spill v]
Steg 2: En hoppende helt
Nå skal vi introdusere hoppehelten.
Sjekkliste
-
Tegn en enkel liten strekfigur som ser ut som om han løper mot venstre. Gi figuren navnet
Helt 1
.Du kan senere lage flere drakter slik at spillet ser bedre ut, men vi vil ikke bruke tid på det nå.
-
Lag en ny variabel som du kaller
sprett
. Det er viktig at denne gjelder kun for denne figuren.Vi vil bruke
sprett
-variabelen til å beskrive heltens bevegelse når han hopper. -
I heltens hovedløkke lar vi gravitasjonen virke ved at vi stadig prøver å gjøre
sprett
mindre, samtidig som vi sier at dersom helten berører bakken skal han ikke falle.når jeg mottar [Nytt spill v] gå til x: (210) y: (-120) for alltid endre [sprett v] med (-1) hvis <berører fargen [#00cc00] ?> neste drakt sett [sprett v] til [0] slutt endre y med (sprett) slutt
Sett fargen i
berører fargen
-klossen til samme farge som streken du tegnet på bakgrunnen i Steg 1. -
Prøv å endre startposisjonen til helten, spesielt y-koordinaten. Får du helten til å falle mot bakken?
-
Legg til en ny
hvis
-test inne ihvis
-testen du allerede har. Hvis tastenm
trykkes setter dusprett
til et positivt tall. Prøv deg fram slik at du finner en verdi som gjør at helten gjør passe store hopp.
Test prosjektet
Klikk på det grønne flagget.
-
Står eller løper helten på bakken? Figuren skal ikke bevege seg sidelengs.
-
Hopper helten når du trykker på
m
-tasten?
Steg 3: Bokser med lyd
Vi skal nå lage noen bokser som helten kan hoppe over.
Sjekkliste
-
Lag en ny figur ved å tegne en liten fargelagt boks som helten kan hoppe over. Kall figuren
Boks
. Bruk til å sette senterpunktet nederst til venstre på boksen. -
Når boksen mottar meldingen
Nytt spill
vil vi at den plasserer seg på bakken helt til venstre på skjermen. Bruk engå til
-kloss og lag dette skriptet selv. Pass på at boksen ikke berører kanten av skjermen. -
Etter at du har funnet en bra plassering på boksen kan du utvide skriptet ved å
skjule
figuren, samt lage en løkke hvor boksen lager en klone av seg selv hvert andre sekund. -
Gå til scenen og lag en variabel du kaller
hastighet
. Lag et skript på scenen som setter denne variabelen til3
når meldingenNytt spill
mottas. -
Gå tilbake til boksfiguren. Vi vil nå at boksklonene flytter seg mot helten. Lag et nytt skript som begynner når boksen starter som klon. I dette skriptet må du
vise
boksen. Deretter kan du starte en løkke som gjentas til boksen berører kanten. Inne i løkken vil du endre x medhastighet
. Etter løkken kan du slette denne klonen.
Test prosjektet
Klikk på det grønne flagget.
-
Kommer det en jevn strøm av bokser mot helten?
-
Kan du bruke
m
til å hoppe over boksene? -
Hva skjer om helten springer inn i en boks?
Sjekkliste
-
Vi vil la spillet stoppe når helten springer inn i en boks. Gå til
Helt 1
. Bytt nå utfor alltid
-løkken med engjenta til
-løkke som du lar gjenta til helten berørerBoks
. -
Etter den nye
gjenta til
-løkken kan du sende ut en ny meldingSpill slutt
. -
Klikk på boks-figuren. Legg til et skript som stopper andre skript i figuren, og deretter sletter denne klonen etter at
Spill slutt
mottas.Prøv spillet ditt igjen. Hva skjer nå om helten springer inn i en boks?
-
Vi kan spille en liten lyd hver gang vi har hoppet over en boks. Legg til en
spill tone (60) i (0.5) takter
kloss etter løkken som flytter boksen, men før klonen slettes. Bruk gjerne
velg instrument
-klossen til å velge et passende instrument før spillet starter. -
Om du tester dette vil du se at boksene blir hengende litt mens lyden spilles. En enkel måte å unngå dette på er å legge til en
skjul
-kloss rett førspill tone
-klossen.
Prøv selv
Før vi går videre skal vi se på et par måter vi kan gjøre hver enkelt boks litt spesiell og forskjellig fra de andre på. Prøv å eksperimentere med disse og de andre innstillingene i spillet ditt.
Helt først i skriptet hvor boksen starter som klon, før den vises, kan du prøve noe av det følgende. Du kan endre størrelsen på boksen tilfeldig, for eksempel med klossen
sett størrelse til (tilfeldig tall fra (30) til (100)) %
På samme måte kan du bruke
sett [farge v] effekt til (tilfeldig tall fra (-100) til (100))
til å endre fargen på boksene tilfeldig. Finn også på andre effekter, kanskje ved å bruke flere drakter?
Vi kan også gjøre lydene som kommer når vi har hoppet over boksene inviduelle. Prøv for eksempel å la lengden av tonen være avhengig av størrelsen på boksen.
Prøv tilslutt å endre på hvor ofte det dukker opp nye bokser. Bruk gjerne en
tilfeldig tall fra (1.2) til (3.2)
kloss. Eksperimenter med verdiene i klossen.
Steg 4: Flere streker og bokser
Nå skal vi gjøre spillet ganske mye vanskeligere ved å lage tre rader med bokser.
Sjekkliste
-
Se på skriptene til
Boks
. Ser du at du har en generator-løkke som lager nye bokser omtrent hvert annet sekund (du har kanskje lagt på entilfeldig
-kloss i denne løkken). Videre har du en flytte-løkke som flytter boksene mot høyre, med eventuelle tilfeldige innstillinger på boksene.Riv løs begge disse to løkkene og legg dem til side. Vi skal bruke dem igjen straks, så ikke slett noe.
-
Lag en ny variabel som du kaller
er generator
. Denne må gjelde kun for denne figuren. Vi vil bruke denne variabelen til å identifisere generator-løkken. -
Vi legger nå nemlig på en ny løkke som lager tre uavhengige generator-løkker. Endre skriptet som kjøres for
Nytt spill
til dette:når jeg mottar [Nytt spill v] gå til x: (-239) y: (-161) sett [er generator v] til [ja] skjul gjenta (3) ganger lag klon av [meg v] endre y med (110) slutt
Bruk den samme utgangsposisjonen som tidligere. Dette vil lage tre generator-kloner med forskjellige y-verdier.
-
Vi vil nå bygge opp igjen skriptet som kjører når en boks starter som klon. Lag først det følgende
når jeg starter som klon hvis <(er generator) = [ja]> sett [er generator v] til [nei] ellers slutt
-
Flytt nå generator-løkken som du la til side tidligere inn i
hvis
-testen rett undersett er generator
-klossen. -
Tilsvarende legger du flytt-løkken fra tidligere inn i
ellers
-testen.
Prøv spillet ditt. Du skal nå ha tre rader med bokser som flyttes over skjermen.
- Klikk på
Scene
helt til venstre på skjermen. Gå tilBakgrunner
. Tegn to nye streker i samme farge som den første. Test spillet og flytt strekene slik at boksene flytter seg naturlig på toppen av dem.
Test prosjektet
Klikk på det grønne flagget.
-
Har du tre rader med bokser som kommer skliende over skjermen?
-
Det er foreløpig bare en hoppehelt på den nederste raden?
Steg 5: Hvor er alle heltene?
Vi skal nå lage de siste to hoppeheltene!
Sjekkliste
-
Lag en kopi av
Helt 1
-figuren. Kopien blir automatisk hetendeHelt 2
. -
Klikk på
Helt 2
. Det eneste vi trenger å endre på er y-posisjonen og tasten som brukes til å hoppe.Endre y-posisjonen i
gå til
-klossen med 110.Endre
m
tilk
itast trykket
-testen.
Prøv spillet ditt igjen. Har du nå to hoppehelter? Virker de som de skal?
- Lag en ny kopi av
Helt 1
-figuren. Endre denne kopien slik at den har posisjon 110 høyere ennHelt 2
, og slik at den hopper når du trykker påo
.
Test prosjektet
Klikk på det grønne flagget.
- Du skal nå ha tre hoppehelter som alle må hoppe over boksene som kommer! Dette har plutselig blitt et ganske vanskelig spill som krever konsentrasjon og koordinasjon!
Prøv selv
Oppgaven slutter her, men det er jo fortsatt mange spennende ting du kan gjøre med spillet ditt for å gjøre det enda bedre.
Prøv for eksempel å legge til poeng ved å lage en
Poeng
-variabel som du øker hver gang en boks har blitt
hoppet over. Du kan også øke hastigheten etterhvert som spillet går.
Prøv å gjøre tonen som spilles avhengig av y-posisjonen til boksen. Dette er litt vanskelig, men blir veldig kult da det høres ut hoppeheltene spiller en liten sang ved å hoppe over boksene.