Level 3Norgestur

Skrevet av: Geir Arne Hjelle

Kurs: Scratch
Tema: Blokkbasert, Spill
Fag: Matematikk, Programmering, Samfunnsfag
Klassetrinn: 1.-4. klasse, 5.-7. klasse, 8.-10. klasse

Introduksjon

Bli med på en rundreise i Norge! Vi skal lage et spill hvor du styrer et helikopter rundt omkring et kart over Norge, mens du prøver å raskest mulig finne steder og byer du blir bedt om å besøke.

Illustrasjon av et Norgestur spill

Steg 1: Et norgeskart

Vi legger først inn et norgeskart som en bakgrunn. Dette vil vi senere bruke helikopteret til å besøke.

checkSjekkliste

Norgeskart

Det finnes mengder av kart på internett. Det kartet vi bruker i denne oppgaven er laget av Kartverket og delt slik at alle kan bruke det til hva de ønsker. Bakerst i denne oppgaven beskrives hvordan du kan bruke andre kart.

Steg 2: Styr helikopteret

Vi skal nå lage et helikopter som vi kan styre rundt over kartet. Vi begynner med å programmere et skript som lar oss kontrollere helikopteret med piltastene.

checkSjekkliste

  • når grønt flagg klikkes
    sett størrelse til (25) %
    gå til x: (0) y: (0)
    
  • når grønt flagg klikkes
    sett størrelse til (25) %
    gå til x: (0) y: (0)
    gjenta for alltid
        hvis <tast [pil opp v] trykket?>
            pek i retning (0 v)
            gå (2) steg
        slutt
    slutt
    

flagTest prosjektet

Klikk på det grønne flagget.

checkSjekkliste

Vi skal nå programmere de andre piltastene også.

  • når grønt flagg klikkes
    sett størrelse til (25) %
    gå til x: (0) y: (0)
    gjenta for alltid
        hvis <tast [pil opp v] trykket?>
            pek i retning (0 v)
            gå (2) steg
        slutt
        hvis <tast [pil høyre v] trykket?>
            pek i retning (90 v)
            gå (2) steg
        slutt
        hvis <tast [pil ned v] trykket?>
            pek i retning (180 v)
            gå (2) steg
        slutt
        hvis <tast [pil venstre v] trykket?>
            pek i retning (-90 v)
            gå (2) steg
        slutt
    slutt
    

flagTest prosjektet

Klikk på det grønne flagget.

Utfordring: Hastighetsvariabel

Hvis du ser i skriptet så har vi gjentatt tallet 2 hele fire ganger. Dette gjør det vanskeligere for oss om vil endre hvor fort helikopteret beveger seg.

Hvis du vil kan du prøve å lage en ny variabel som heter hastighet. Deretter kan du sette denne variabelen lik 2 etter at det grønne flagget klikkes. Til slutt kan du bytte ut gå 2 steg-klossene med hastighet steg-klosser.

Steg 3: Legg til et reisemål

Nå som helikopteret kan fly rundt omkring i Norge kan vi gi spilleren et mål med reisen.

checkSjekkliste

  • Bilde av en helt rund rød sirkel
  • Bilde av x- og y koordinatene i Scratch
  • når grønt flagg klikkes
    send melding [Sted: Hønefoss v]
    
    når jeg mottar [Sted: Hønefoss v]
    gå til x: (6) y: (-112)
    vent til <berører [Helikopter v]?>
    si [Fant Hønefoss!] i (2) sekunder
    

    Legg merke til at i gå til-klossen bruker vi samme koordinater som de vi fant ovenfor. Det betyr at om du bruker ditt eget reisemål må du bytte disse tallene med de du fant.

flagTest prosjektet

Klikk på det grønne flagget.

Steg 4: Et nytt reisemål

La oss legge til et nytt reisemål vi kan reise til etter å ha besøkt det første!

checkSjekkliste

  • når jeg mottar [Sted: Hønefoss v]
    gå til x: (6) y: (-112)
    vent til <berører [Helikopter v]?>
    si [Fant Hønefoss!] i (2) sekunder
    send melding [Sted: Tromsø v]
    
    når jeg mottar [Sted: Tromsø v]
    gå til x: (103) y: (121)
    vent til <berører [Helikopter v]?>
    si [Fant Tromsø!] i (2) sekunder
    

    Bruk dine egne koordinater (og navn) også for det andre reisemålet.

flagTest prosjektet

Klikk på det grønne flagget.

Steg 5: Skjul reisemålene

Foreløpig er ikke spillet veldig vanskelig: Alt du behøver å gjøre er å styre helikopteret til den røde sirkelen. For å lage et skikkelig spill vil vi skjule den røde sirkelen, og heller bare fortelle spilleren til hvilket sted hun skal fly!

checkSjekkliste

Vi vil først fortelle spilleren hvor han skal fly.

  • når jeg mottar [Sted: Hønefoss v]
    gå til x: (6) y: (-112)
    sett [Reis til v] til [Hønefoss]
    vent til <berører [Helikopter v]?>
    si [Fant Hønefoss!] i (2) sekunder
    send melding [Sted: Tromsø v]
    
  • når jeg mottar [Sted: Tromsø v]
    gå til x: (103) y: (121)
    sett [Reis til v] til [Tromsø]
    vent til <berører [Helikopter v]?>
    si [Fant Tromsø!] i (2) sekunder
    

flagTest prosjektet

Klikk på det grønne flagget.

checkSjekkliste

Vi er nå klare til å skjule den røde sirkelen. Vi prøver først det enkleste og mest opplagte:

  • når grønt flagg klikkes
    skjul
    send melding [Sted: Hønefoss v]
    

flagTest prosjektet

Klikk på det grønne flagget.

Hmm ... spillet oppdager ikke lengre at vi reiser til Hønefoss. Problemet er at siden vi skjuler sirkelen vil den ikke lengre berøre Helikopter-figuren. Vi må finne en annen måte å gjøre sirkelen usynlig på!

checkSjekkliste

  • når grønt flagg klikkes
    vis
    sett [gjennomsiktig v] effekt til (100)
    send melding [Sted: Hønefoss v]
    

    Vi har også lagt til en vis-kloss for å være på den sikre siden (vi har jo oppdaget at spillet ikke virker om Sted-figuren er skjult).

flagTest prosjektet

Klikk på det grønne flagget.

Steg 6: Vis reisemålet etter at det blir funnet

Det vil være kult å vise spilleren hvor reisemålet faktisk er etter at hun har funnet det!

checkSjekkliste

  • når jeg mottar [Sted: Hønefoss v]
    gå til x: (6) y: (-112)
    sett [Reis til v] til [Hønefoss]
    vent til <berører [Helikopter v]?>
    send melding [Fant sted v] og vent
    send melding [Sted: Tromsø v]
    
    når jeg mottar [Sted: Tromsø v]
    gå til x: (103) y: (121)
    sett [Reis til v] til [Tromsø]
    vent til <berører [Helikopter v]?>
    send melding [Fant sted v] og vent
    
  • når jeg mottar [Fant sted v]
    sett [gjennomsiktig v] effekt til (0)
    stemple avtrykk
    sett [gjennomsiktig v] effekt til (100)
    

flagTest prosjektet

Klikk på det grønne flagget.

checkSjekkliste

  • når grønt flagg klikkes
    slett
    vis
    sett [gjennomsiktig v] effekt til (100)
    send melding [Sted: Hønefoss v]
    
  • når jeg mottar [Fant sted v]
    start lyden [rattle v]
    sett [gjennomsiktig v] effekt til (0)
    stemple avtrykk
    sett [gjennomsiktig v] effekt til (100)
    

flagTest prosjektet

Klikk på det grønne flagget.

Steg 7: Tiden går

Vi skal nå gjøre spillet enda mere utfordrende ved å legge på en tidsbegrensning.

checkSjekkliste

  • når grønt flagg klikkes
    sett [Tid v] til [30]
    gjenta til <(Tid) = [0]>
        vent (1) sekunder
        endre [Tid v] med (-1)
    slutt
    send melding [Avslutt v]
    

    Legg merke til at vi også sender ut en ny melding Avslutt når tiden er ute. Denne bruker vi til å avslutte spillet.

  • når jeg mottar [Avslutt v]
    stopp [alle v] :: control
    

flagTest prosjektet

Klikk på det grønne flagget.

checkSjekkliste

Som en bonus kan vi også gi spilleren litt ekstra tid hver gang han finner et reisemål.

  • når jeg mottar [Fant sted v]
    endre [Tid v] med (10)
    

Steg 8: Flere steder å besøke

Til sist vil vi legge til litt flere steder å besøke for å gjøre spillet mer spennende!

checkSjekkliste

For å legge til nye steder må vi bare gjøre det samme som vi gjorde tidligere i oppgaven (under Steg 3 og 4). Det enkleste er å kopiere kodeklossene vi allerede har lagd, og deretter endre på dem.

  • når jeg mottar [Sted: Hønefoss v]
    gå til x: (6) y: (-112)
    sett [Reis til v] til [Hønefoss]
    vent til <berører [Helikopter v]?>
    send melding [Fant sted v] og vent
    send melding [Sted: Tromsø v]
    
    når jeg mottar [Sted: Tromsø v]
    gå til x: (103) y: (121)
    sett [Reis til v] til [Tromsø]
    vent til <berører [Helikopter v]?>
    send melding [Fant sted v] og vent
    send melding [Sted: Lillehammer v]
    
    når jeg mottar [Sted: Lillehammer v]
    gå til x: (14) y: (-94)
    sett [Reis til v] til [Lillehammer]
    vent til <berører [Helikopter v]?>
    send melding [Fant sted v] og vent
    send melding [Sted: Bergen v]
    
    når jeg mottar [Sted: Bergen v]
    gå til x: (-52) y: (-107)
    sett [Reis til v] til [Bergen]
    vent til <berører [Helikopter v]?>
    send melding [Fant sted v] og vent
    send melding [Sted: Narvik v]
    
    når jeg mottar [Sted: Narvik v]
    gå til x: (91) y: (90)
    sett [Reis til v] til [Narvik]
    vent til <berører [Helikopter v]?>
    send melding [Fant sted v] og vent
    send melding [Avslutt v]
    

flagTest prosjektet

Klikk på det grønne flagget.

saveLagre prosjektet

Da er norgesturen vår ferdig!

Du kan nå utfordre venner og familie til å reise rundt omkring i Norge sammen med deg! Hvis du vil dele spillet på internett kan du trykke Legg ut øverst til høyre på skjermen.

Flere utfordringer

Det er alltid muligheter til å utvide spill, nedenfor har vi noen forslag som du kan prøve deg på!

Utfordring: Enda flere reisemål

Det er ingen begrensning på hvor mange reisemål du kan legge til i spillet. Har du reisemål fra alle deler av landet? Kanskje du kan besøke et sted i hvert fylke i Norge?

Utfordring: En skikkelig avslutning

Slik spillet er nå bare slutter helikopteret å fly enten når tiden er ute eller når spilleren har funnet alle reisemålene. Kan du legge til en skikkelig avslutning? Denne bør gi spilleren tilbakemelding på om hun vant ved å finne alle reisemålene eller tapte fordi tiden var ute.

En måte å gjøre dette på vil være å lage to nye meldinger Vant og Tapte som sendes i stedet for Avslutt henholdsvis etter at siste reisemål er funnet, og etter at tiden er ute. Du kan så lage to nye bakgrunner ved å kopiere norgeskartet, og deretter skrive en passende tekst på de nye bakgrunnene. Disse kan så vises etter at spillet er enten vunnet eller tapt.

Utfordring: Reisemål i tilfeldig rekkefølge

Dette er en skikkelig utfordring! Slik det er nå kommer reisemålene alltid i samme rekkefølge, kan du gjøre det slik at rekkefølgen blir tilfeldig?

Det finnes ingen måte å sende ut tilfeldige meldinger i Scratch. Det vi i stedet kan gjøre er å tilfeldig bestemme om vi skal be spilleren reise til et reisemål, eller bare gå videre til neste reisemål uten å spørre.

  • definer sjekk sted
    hvis <<(tilfeldig tall fra (1) til (Antall steder totalt)) > [1]> eller <berører fargen [#ff0000]?>>
        sett [bruk sted v] til [nei]
    ellers
        sett [bruk sted v] til [ja]
    slutt
    
    når jeg mottar [Sted: Hønefoss v]
    gå til x: (6) y: (-112)
    sjekk sted
    hvis <(bruk sted) = [ja]>
        sett [Reis til v] til [Hønefoss]
        vent til <berører [Helikopter v]?>
        send melding [Fant sted v] og vent
    slutt
    send melding [Sted: Tromsø v]
    

    Klossen berører fargen brukes for å sjekke om vi allerede har besøkt et reisemål. I såfall vil vi jo ha stemplet rødfarge på kartet.

Hvordan lage egne kart

Til sist vil vi se på hvordan du kan reise rundt i egne kart eller andre kart som du finner på internett.

checkSjekkliste

Opphavsrett

Noen har laget de kartene du finner på internett, og som regel vil de ha opphavsretten til disse kartene. I praksis betyr det at de eier kartene. Det betyr at dersom du vil bruke kartene i et spill du gjør tilgjengelig for andre (bruker Legg ut-knappen i Scratch), må du undersøke om dette er greit for de som har laget kartene.

Mye materiell på internett, inkludert kartet vi har brukt i denne oppgaven, er lagt ut med en såkalt lisens som kan si at du kan bruke materiellet så lenge du referer til dem som opprinnelig lagde materiellet. Dette er lett å gjøre i Scratch. Klikk på Se prosjektsiden øverst til høyre. Du kommer da til en side hvor du kan beskrive prosjektet. En av boksene heter Merknader og bidragsytere. Her kan du nevne dem som opprinnelig har laget for eksempel kartet du bruker.

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!