JafseFisk

Introduksjon

Vi skal nå lage et JafseFisk-spill! Målet i spillet er å hjelpe JafseFisk med å spise alle byttedyrene som svømmer rundt i havet.

Steg 1: JafseFisk følger musepekeren

Først skal vi lage JafseFisk som svømmer rundt i havet!

Sjekkliste

  • Start et nytt Scratch prosjekt.

  • Riktig bakgrunn får du ved å velge Scene og så Bakgrunner-fanen. Importer bakgrunnen Natur/underwater3 ved å velge Velg en ferdig bakgrunn. Slett så den opprinnelige bakgrunnen backdrop1.

  • Endre Sprite1's navn til JafseFisk ved å klikke på katten og deretter på det blå i-symbolet.

  • Gi figuren en haidrakt ved å gå til Drakter-fanen og velge Velg drakt fra biblioteket. Velg drakten Dyr/shark-b. Kall drakten Åpen munn. Slett så figurens kattedrakter.

  • Klikk på det blå i-symbolet igjen, og pass på at figuren bare kan bevege seg fra side til side ved å velge rotasjonsmåte Høyre/Venstre.

  • Få fisken til å følge musepekeren rundt i sjøen ved å lage dette skriptet:

    når grønt flagg klikkes
    for alltid
        pek mot [musepeker v]
        gå (3) steg
    slutt
    

Test Prosjektet

Klikk på det grønne flagget.

  • Flytt musepekeren rundt i sjøen. Følger fisken etter?

  • Hva skjer hvis du ikke flytter musepekeren og fisken når den igjen?

  • Hvordan ser den ut? Hvorfor gjør den dette?

Sjekkliste

  • Du kan stoppe JafseFisks maniske flipping hvis du sørger for at den bare flytter seg når den ikke er for nær musepekeren (avstand til [musepeker v] ligger i Sansning-kategorien).

    når grønt flagg klikkes
    for alltid
        hvis <(avstand til [musepeker v]) > [10]>
            pek mot [musepeker v]
            gå (3) steg
        slutt
    slutt
    

Ting å prøve

Hvis du vil kan du forandre tallene i skriptet, og se hvordan det forandrer bevegelsene.

  • Sett avstandsgrensen til et stort tall (f.eks. 100), eller et lite tall (f.eks. 1).

  • Sett antall steg fisken flytter seg til et stort tall (f.eks. 20) eller et lite tall (f.eks. 1, eller til og med 0, hva skjer?).

Steg 2: Legg til byttedyr

Det er på tide å gi JafseFisk noe å spise!

Sjekkliste

  • Legg til en ny figur fra biblioteket ved å bruke Dyr/Fish2. Gi figuren navnet Byttedyr.

  • Gjør figuren mindre ved å bruke krympeknappen krymp som ligger over den røde stopp-knappen.

  • Få byttedyret til å bevege seg i tilfeldige retninger. Først skal vi la det bevege seg litt framover, og så snu en tilfeldig valgt vinkel med eller mot klokka, og deretter gjenta.

    når grønt flagg klikkes
    for alltid
        gå (2) steg
        vend venstre (tilfeldig tall fra (-20) til (20)) grader
        sprett tilbake ved kanten
    slutt
    

Test prosjektet

Klikk på det grønne flagget.

  • Svømmer byttedyret rundt slik du forventet?

  • Ser bevegelsene naturlige ut?

For øyeblikket samspiller ikke JafseFisk og byttedyret med hverandre. Det skal vi gjøre noe med i neste steg.

Ting å prøve

  • Prøv å forandre tallene for gå (2) steg og tilfeldig tall fra (-20) til (20). Hvordan forandrer det byttedyrets bevegelser?

  • Hva gjør sprett tilbake ved kanten? Fjern klossen og se hva som skjer.

Steg 3: JafseFisk spiser byttet

Nå skal vi la JafseFisk spise byttet!

Når JafseFisk har fanget byttet i munnen skal to ting skje: JafseFisk må lukke munnen og lage en gomlelyd. Videre må byttet forsvinne, for så å dukke opp igjen en liten stund senere.

Sjekkliste

  • Vi starter med å la byttet forsvinne hvis det berører JafseFisk, og så komme tilbake etter 3 sekunder. Bruk berører [JafseFisk v]? for å sjekke om byttet kommer borti JafseFisk. Utvid skriptet på byttedyret slik som dette:

    når grønt flagg klikkes
    for alltid
        gå (2) steg
        vend venstre (tilfeldig tall fra (-20) til (20)) grader
        sprett tilbake ved kanten
        hvis <berører [JafseFisk v]?>
            skjul
            vent (3) sekunder
            vis
        slutt
    slutt
    

Test prosjektet

Klikk på det grønne flagget.

  • Legg merke til at byttet forsvinner uansett hvor det berører JafseFisk.

  • Dessuten kan JafseFisk bare vente 3 sekunder og så spise byttet i samme øyeblikk som det dukker opp igjen, det er ikke særlig rettferdig!

Sjekkliste

Hvordan kan vi sikre at byttet bare forsvinner hvis det berører JafseFisks munn? Tja, vi kan bruke <berører fargen [#FFFFFF]?> og se om den berører det hvite på fiskens tenner.

  • Legg til <berører fargen [#FFFFFF]?> i tillegg til <berører [JafseFisk v]?> i skriptet ditt. For å velge hvit klikker du på fargen i klossen og deretter på fiskens tenner.

  • Nå kan vi la byttet flytte seg til et tilfeldig punkt på skjermen før det dukker opp igjen ved å bruke gå til x: (tilfeldig tall fra (-220) til (220)) y: (tilfeldig tall fra (-170) til (170)) som vi gir tilfeldige verdier for x og y.

    når grønt flagg klikkes
    for alltid
        gå (2) steg
        vend venstre (tilfeldig tall fra (-20) til (20)) grader
        sprett tilbake ved kanten
        hvis <<berører [JafseFisk v]?> og <berører fargen [#FFFFFF]?>>
            skjul
            vent (3) sekunder
            gå til x: (tilfeldig tall fra (-220) til (220)) y: (tilfeldig tall fra (-170) til (170))
            vis
        slutt
    slutt
    

Test prosjektet

Klikk på det grønne flagget.

  • Forsvinner byttet bare når det berører fiskens tenner?

  • Kommer det tilbake et tilfeldig sted på skjermen – altså ikke samme sted som det ble spist?

Steg 4: JafseFisk reagerer

JafseFisk må vite når den har spist noe slik at den kan gi fra seg en lyd og bytte drakt.

Sjekkliste

  • For at JafseFisk skal vite hva som skjer kan vi la byttet send melding [Du tok meg! v] om at det er spist, før det forsvinner.

    når grønt flagg klikkes
    for alltid
        gå (2) steg
        vend venstre (tilfeldig tall fra (-20) til (20)) grader
        sprett tilbake ved kanten
        hvis <<berører [JafseFisk v]?> og <berører fargen [#FFFFFF]?>>
            send melding [Du tok meg! v]
            skjul
            vent (3) sekunder
            gå til x: (tilfeldig tall fra (-220) til (220)) y: (tilfeldig tall fra (-170) til (170))
            vis
        slutt
    slutt
    

Nå vil vi at JafseFisk reagerer på denne meldingen ved å lage en gomlelyd og klikke med kjevene.

  • Legg til drakten Dyr/shark-a og lyden Effekter/bubbles på JafseFisk. Kall drakten Lukket munn.

  • Legg så til et nytt skript til JafseFisk slik at han kan svare på meldingen Du tok meg! fra byttedyret. Dette skriptet gjør at fisken spiller av boblelyden og bytt drakt til [Åpen munn v] drakten, venter litt og så bytter tilbake.

    når jeg mottar [Du tok meg! v]
    spill lyden [bubbles v]
    gjenta (2) ganger
        bytt drakt til [Lukket munn v]
        vent (0.5) sekunder
        bytt drakt til [Åpen munn v]
        vent (0.5) sekunder
    slutt
    

Nå er JafseFisk klar til å spise, så la oss fylle havet med byttedyr.

  • Høyreklikk på byttedyret og velg lag kopi til du føler at du har fått nok fisk.

Test prosjektet

Klikk på det grønne flagget.

  • Spiser JafseFisk byttet?

  • Spiser den alle byttedyrene?

Noe å tenke på

Hvorfor bør vi legge til vis i starten av byttedyrets skript? Tenk på hva som vil skje om byttet blir spist og spillet stoppes før det dukker opp igjen. Og hva vil skje om spillet deretter blir startet igjen?

Lagre prosjektet

Godt gjort! Du har i grunn fullført spillet! Men det finnes flere muligheter for utvidelse av spillet. Er du klar for en utfordring?

Utfordring 1: Forandre bevegelsene til byttedyrene

For øyeblikket beveger alle byttedyrene seg likt. Kan du få ett av dem til å bevege seg annerledes?

Hint: Ikke bruke for lang tid på denne oppgaven uten å se på de andre utfordringene i dette prosjektet.

Velg deg ut et byttedyr å eksperimentere med. Hvis de har samme drakt, bytt farge med sett [farge v] effekt til (0). Slik kan du se forskjell fra resten av byttedyrene. Prøv nå å få dette byttedyret til å bevege seg saktere enn de andre.

Hint: Se på klossen gå (2) steg.

Test prosjektet

Klikk på det grønne flagget.

  • Beveger byttet seg saktere? Gjør dette spillet bedre?

  • Hvis du klarte dette, prøv å gjøre et av byttedyrene raskere enn de andre.

  • Beveger byttedyrene seg på en fornuftig måte? Gjør disse forandringene spillet bedre?

    Hint: Hvis byttet ditt svømmer rundt i sirkler, sjekk verdiene i vend venstre (tilfeldig tall fra (-20) til (20)) grader.

  • Hva om du lar alle byttedyrene bevege seg forskjellig, ved å bruke forskjellige kombinasjoner av disse bevegelsene?

  • Gjør noen av disse forandringene spillet bedre? Gjør de spillet med interessant, morsommere, vanskeligere eller lettere? Er noe av dette bedre synes du?

Utfordring 2: Hjelp byttet å unngå JafseFisk

Byttedyrene i dette spillet er skikkelig dumme! De svømmer bare tilfeldig rundt til de blir spist. Ekte fisk svømmer vekk fra rovfisker. Nå vil vi la ett av byttedyrene svømme vekk fra JafseFisk.

Det fins ingen kloss i Scratch som kan gi oss retningen vekk fra en annen figur. Men du kan få en figur til å snu seg i retningen mot en annen, og deretter la den snu seg i motsatt retning. Klossene du trenger er i Bevegelse-kategorien.

Prøv nå å hjelpe et av byttedyrene med å snu seg vekk fra JafseFisk. La den også virre litt mens den svømmer bort! Du vil kanskje oppdage at byttet setter seg fast i et hjørne? Du vil kanskje at byttet bare ønsker å flykte dersom JafseFisk kommer for nære? Hint: Se tilbake på hvordan vi brukte (avstand til [musepeker v]) tidligere i spillet.

Test prosjektet

Klikke på det grønne flagget.

  • Gjør dette at fisken blir vanskeligere å ta? Gjør det spillet bedre?

Utfordring 3: Legg til poeng

Det er ikke nok bare å spise fisk. Hvordan vet du at du er en bedre spiller enn vennene dine? Du må kunne samle poeng, så la oss legge til en poengtavle. Lag en variabel som heter (poeng), og endre denne når JafseFisk spiser. Pass på at poengene går tilbake til null ved begynnelsen av spillet. Hvor skal du legge inn disse endringene?

Test prosjektet

Klikk på det grønne flagget.

  • Går poengsummen opp hver gang JafseFisk spiser byttedyr?

  • Går den tilbake til null når spillet starter?

Utfordring 4: Legg til en nedtelling

Gi deg selv en tidsfrist. Hvor mange fisk kan du spise på 30 sekunder?

Legg til en ny variabel, (tid). Lag et nytt skript som setter variabelen til for eksempel 30, for deretter å endre denne med -1, vente 1 sekund, og endre igjen, helt til den når null. Til slutt kan du bruke en stop [alle v]-kloss for å slutte spillet.

Test prosjektet

Klikk på det grønne flagget.

  • Begynner tidtakeren på 30?

  • Teller den ned med rett hastighet?

  • Kan du fange fisk mens tiden telles ned?

  • Stopper spillet når telleren når null?

Utfordring 5: Legg til bonuspoeng

Legg til en belønning med mange bonuspoeng om du klarer å spise alle fiskene samtidig. Hvordan kan du vite hvor mange som er spist?

Hint: En måte å gjøre dette på er å bruke en variabel for å telle hvor mange byttedyr som svømmer i havet.

Test prosjektet

Klikk på det grønne flagget.

  • Får du bonuspoeng for å spise opp alle fiskene?

Utfordring 6: Forandre spillet: Hold byttedyrene i live!

Av og til kan man få glimrende nye idèer ved å gjøre det motsatte av det man allerede har gjort.

Endre spillet slik at du i stedet kontrollerer et byttedyr i et hav av mange JafseFisker. Hvor lenge kan du holde det gående før du blir spist? I stedet for å bruke poeng kan du telle liv. Hva med å gi byttedyret 3 liv og avslutte spillet når de er brukt opp?

Lagre prosjektet

Godt gjort, du er ferdig! Nå kan du nyte spillet ditt!

Ikke glem at du kan dele spillet med alle vennene og familien din ved å klikke på Legg ut i topp-menyen!

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!

Rapporter et problemVis koden og fiks selv