Flaksefugl

Introduksjon

Nå skal vi lage vår egen versjon av spillet Flappy Bird. Du styrer fuglen Flakse ved å trykke på mellomromtasten for å flakse med vingene. Du må holde Flakse flyvende og prøve å styre mellom rørene!

Steg 1: Få Flakse til å falle

Vi begynner enkelt, ved å introdusere Flakse og få ham til å falle.

Sjekkliste

  • Start et nytt Scratch-prosjekt. Slett katten ved å høyreklikke den og velge Slett. Alternativt kan du klikke på saksen i topplinjen, og deretter på katten.

  • Bytt ut bakgrunnen med et landskap. Desert er et bra valg.

  • Legg til Flakse-figuren. Du trenger en figur med drakter for vinger opp og vinger ned. Parrot er et bra forslag.

  • Bytt navn på figuren til Flakse.

  • Gi Flakse dette skriptet:

    når grønt flagg klikkes
    gå til x: (-50) y: (0)
    for alltid
        endre y med (-3)
    slutt
    

Test prosjektet

Klikk det grønne flagget.

  • Starter Flakse midt på skjermen og faller mot bunnen?

Steg 2: Få Flakse til å fly

Nå vil vi at Flakse skal fly oppover når du trykker mellomromtasten.

Sjekkliste

  • Klikk på Drakter og gi de to draktene navnene Vinger opp og Vinger ned.

  • Gå tilbake til Skript og legg til dette skriptet:

    Når [mellomrom v] trykkes
    bytt drakt til [Vinger ned v]
    gjenta (10) ganger
        endre y med (6)
    slutt
    bytt drakt til [Vinger opp v]
    gjenta (10) ganger
        endre y med (6)
    slutt
    

Test prosjektet

Klikk det grønne flagget.

  • Klarer du å kontrollere Flakse med mellomromtasten?

  • La du merke til at om du trykker mellomrom flere ganger raskt etterhverandre så flakser Flakse av og til bare en gang? Det er det neste vi skal fikse.

Steg 3: Gjør kontrollen bedre

Vi vil at Flakse skal reagere hver gang vi trykker mellomrom. Men når vi trykker mellomrom så starter to løkker etter hverandre. Hvis vi trykker mellomrom før disse to løkkene er ferdig så skjer det ikke noe. For å løse dette problemet skal vi bruke en variabel til å telle hvor mange flaks vi trenger å gjøre.

Sjekkliste

  • Lag en ny variabel og kall den flaks. Velg at den bare skal gjelde For denne figuren. Klikk OK. Skjul variabelen ved å ta vekk avhukingen foran variabelen.

  • Vi skal nå gjøre om på skriptet som starter med når mellomrom trykkes. Dra i bytt drakt til Vinger ned-klossen slik at den og klossene under løsner. Legg disse klossene til siden. Vi skal bruke dem igjen straks.

  • Lag et nytt skript. Legg merke til at klossene du nettopp la til siden kan brukes igjen inne i gjenta til flaks = 0-løkken:

    når grønt flagg klikkes
    sett [flaks v] til [0]
    bytt drakt til [Vinger opp v]
    for alltid
        gjenta til <(flaks) = [0]>
            endre [flaks v] med (-1)
            bytt drakt til [Vinger ned v]
            gjenta (10) ganger
                endre y med (6)
            slutt
            bytt drakt til [Vinger opp v]
            gjenta (10) ganger
                endre y med (6)
            slutt
        slutt
    slutt
    
  • Til slutt, legg følgende skript på når mellomrom trykkes-klossen som ble til overs tidligere:

    når [mellomrom v] trykkes
    endre [flaks v] med (1)
    
  • Du skal nå ha tre forskjellige skript på Flakse.

Test prosjektet

Klikk det grønne flagget.

  • Flakser Flakse en gang for hver gang du trykker mellomromtasten?

Steg 4: Legg til rørene

Vi vil legge til noen hindringer som Flakse kan fly igjennom.

Sjekkliste

  • Legg til en ny figur ved å klikke på Tegn ny figur-knappen, Tegn ny figur.

  • Hvis det står Punktgrafikk nede til høyre, klikk på Bytt til vektorgrafikk-knappen.

  • Klikk på Zoom - så du kan se hele tegneområdet.

  • Klikk på Rektangel, velg en farge og klikk på Fylt rektangel-knappen nederst til venstre.

  • Klikk og dra to bokser, en fra toppen og en fra bunnen i midten av tegneflaten. Det skal se omtrent sånn ut:

  • Du kan skyggelegge rørene ved å klikke på Fyll farge og klikke på en av skyggemetodene i firkantene nede til venstre. Velg to varianter av samme farge: en for forgrunnen og en for bakgrunnen. Når du klikker på en firkant med fylleverktøyet får du en fin effekt.

  • Gi den nye figuren navnet Rør.

Steg 5: Få rørene til å bevege seg

Nå skal vi få rørene til å flytte seg og gjøre høyden tilfeldig slik at vi får en hinderløype til Flakse.

Sjekkliste

  • Klikk på Rør-figuren og velg Skript.

  • Legg til disse to skriptene:

    når grønt flagg klikkes
    skjul
    sett størrelse til (200)%
    for alltid
        lag klon av [meg v]
        vent (2) sekunder
    slutt
    
    når jeg starter som klon
    gå til x: (240) y: (tilfeldig tall fra (-80) til (80))
    vis
    gjenta (120) ganger
        endre x med (-4)
    slutt
    slett denne klonen
    

Test prosjektet

Klikk det grønne flagget.

  • Kommer det mange rør flygende mot Flakse?

  • Har rørene åpninger til å fly gjennom?

  • Om du synes det er vanskelig å fly Flakse gjennom åpningene kan du for eksempel endre på åpningen mellom rørene med tegneverktøyet. En annen mulighet er å lage Flakse mindre.

Steg 6: Finn ut om Flakse kræsjer med rørene

For at spillet skal bli vanskelig må spilleren styre Flakse gjennom åpningene mellom rørene uten å komme borti hverken rør eller kanten av skjermen. Vi skal legge til noen klosser som merker om Flakse kræsjer.

Sjekkliste

  • Vi legger til en lyd som vi kan spille når Flakse kræsjer. Klikk på Flakse-figuren og så på Lyder.

  • Klikk på Velg lyd fra biblioteket.

  • Velg en kræsjelyd for Flakse. Screech er en kul lyd.

  • Klikk deg tilbake til Skript-fanen.

  • Legg til dette skriptet på Flakse:

    når grønt flagg klikkes
    vent til <<berører [kant v]?> eller <berører [Rør v]?>>
    spill lyden [screech v]
    si [Du tapte!]
    send melding [Tap v]
    stopp [andre skript i figuren v] :: control
    
  • Klikk så på Rør-figuren og legg til dette skriptet:

    når jeg mottar [Tap v]
    stopp [andre skript i figuren v] :: control
    

Test prosjektet

Klikk det grønne flagget.

  • Stopper spillet hvis Flakse kommer borti et rør eller kanten av brettet?

Steg 7: Legg til poeng

Spilleren skal score ett poeng hver gang Flakse flyr gjennom en røråpning.

Sjekkliste

  • Vi legger til en lyd hver gang Flakse scorer ett poeng. Klikk på Rør-figuren og legg til en lyd. Bird er et lurt valg.

  • Gå tilbake til Skript-fanen.

  • Lag en ny variabel som skal gjelde For alle figurer. Kall den poeng.

  • Legg til et skript som setter poengene til 0 når det grønne flagget klikkes. Dette klarer du selv!

  • Legg så til dette skriptet på Rør:

    når jeg starter som klon
    vent til <(x-posisjon) < ([x-posisjon v] av [Flakse v])>
    endre [poeng v] med (1)
    spill lyden [bird v]
    

Test prosjektet

Klikk det grønne flagget.

  • Scorer du poeng når Flakse flyr forbi en åpning mellom rørene?

  • Hvordan kan du lage dette spillet lettere eller vanskeligere?

Lagre prosjektet ditt

Supert, du har laget ferdig din egen enkle versjon av Flappy Bird-spillet.

Her er noen flere ting du kan prøve:

Utfordring 1: Legg til tyngdekraft

Når noe faller på grunn av tyngdekraft øker farten jo lenger fallet varer. Vi skal prøve å etterligne denne måten å falle på.

  • Legg til en ny variabel for Flakse som heter løft. Variablen skal gjelde for For denne figuren.

  • Endre Flakses falleskript:

    når grønt flagg klikkes
    sett [løft v] til [0]
    gå til x: (-50) y: (0)
    for alltid
        endre y med (løft)
        endre [løft v] med (-0.2)
    slutt
    
  • Deretter må vi endre Flakses flakseskript:

    når grønt flagg klikkes
    sett [flaks v] til [0]
    bytt drakt til [Vinger opp v]
    for alltid
        gjenta til <(flaks) = [0]>
            endre [flaks v] med (-1)
            bytt drakt til [Vinger ned v]
            endre [løft v] med (4)
            vent (0.1) sekunder
            bytt drakt til [Vinger opp v]
            vent (0.1) sekunder
        slutt
    slutt
    

Test prosjektet

Klikk det grønne flagget.

  • Faller Flakse fortere jo lenger han detter?

Utfordring 2: Fall ut av skjermen

Når spilleren taper vil vi at Flakse faller ned og ut av skjermen.

  • Bytt ut send meldingen Tap-klossen med send meldingen Fall i skriptet som merker når Flakse kræsjer i kanten eller i et rør. Slett stopp-klossen på slutten av skriptet.

  • Legg til disse nye skriptene på Flakse-figuren:

    når jeg mottar [Fall v]
    for alltid
        vend høyre (5) grader
    slutt
    
    når jeg mottar [Fall v]
    gjenta til <(y-posisjon) < [-180]>
        endre y med (løft)
        endre [løft v] med (-0.2)
    slutt
    skjul
    send melding [Tap v]
    stopp [andre skript i figuren v] :: control
    
  • Du må også legge til en vis-kloss samt sette Flakses retning når spillet starter på nytt.

Test prosjektet

Klikk det grønne flagget.

  • Faller Flakse ut av skjermen når han treffer et rør?

  • Flyr Flakse riktig vei når spillet starter igjen?

Utfordring 3: Legg til rekorder

  • Lag en ny variabel og merk av Nett variabel (lagret på nett)-boksen. Kall variabelen Rekord.

  • Når spillet er ferdig må vi sjekke om det er en ny rekord. Det gjør vi ved å endre Tap-skriptet på Rør slik:

    når jeg mottar [Tap v]
    hvis <(poeng) > (Rekord)>
        sett [Rekord v] til (poeng)
    slutt
    stopp [andre skript i figuren v] :: control
    

Nettvariabler

Nettvariabler gir deg muligheten til å huske ting mellom forskjellige brukere og forskjellige kjøringer av spillet ditt (i motsetning til vanlige variabler hvor verdiene blir nullstilt hver gang du trykker det grønne flagget). Dette er nøyaktig det vi trenger for å huske hva rekorden i spillet er.

Nettvariabler er fortsatt litt eksperimentelle, og for tiden får ikke nye brukere av Scratch lov til å lage slike variabler. Hvis du ikke får lov til å lage en slik variabel må du hoppe over den siste utfordringen.

Test prosjektet

Klikk det grønne flagget.

  • Oppdaterer rekorden seg hver gang du setter ny rekord?

Lagre prosjektet ditt

Gratulerer, du er ferdig med spillet! Hva er rekorden din?

Ikke glem å dele spillet med vennene dine. Trykk på Legg ut for at andre skal få prøve!

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