Ørkenløp

Introduksjon

Dette er et spill for to, der en papegøye og en løvinne kjemper om å komme først gjennom ørkenen. Hver spiller må trykke en tast så fort og ofte som mulig for å flytte figuren sin, og den som kommer først til kanten av skjermen vinner.

Steg 1: Lag en scene og legg til figurer

Vi begynner med å få på plass bakgrunnen og figurene.

Sjekkliste

  • Klikk på Scene og velg en ferdig bakgrunn, velg en ferdig bakgrunn. Velg Natur/desert.

  • Fjern katten ved å høyreklikke på figuren og velg slett.

  • Legg til en ny figur ved å trykke på velg figur fra biblioteket. Velg Dyr/Lionness.

  • Legg så til enda en ny figur: velg Dyr/Parrot. Krymp figuren slik at den er omtrent like stor som løvinnen ved å bruke krymp.

Steg 2: La løvinnen og papegøyen bevege seg

Vi vil at figurene skal bevege seg når du trykker på en knapp.

Sjekkliste

  • Velg først løvefiguren og få den til å gå 4 steg når du trykker L tasten.

    når [l v] trykkes
    gå (4) steg
    
  • Velg så papegøyefiguren og la den gå 4 steg når du trykker A tasten.

    når [a v] trykkes
    gå (4) steg
    

Test prosjektet

Klikk på det grønne flagget.

  • Beveger løvinnen og papegøyen seg over skjermen når du trykker på A og L tastene?

Steg 3: Start kappløpet

Nå må vi kjøre i gang kappløpet og kåre en vinner. Vi begynner med å lage startknapp.

Sjekkliste

  • Legg til en ny figur. Velg Ting/Button3. Flytt den til midten av scenen.

  • Klikk på Drakter-fanen og verktøyet T for å legge til tekst. Trykk på venstre kant av knappen for å legge til et tekstfelt og skriv inn teksten Start. Du kan flytte på teksten ved å trykke en gang på den, og endre innhold ved å dobbeltklikke.

  • Legg nå til et skript som viser figuren når spillet starter:

    når grønt flagg klikkes
    vis
    
  • I tillegg vil vi at knappen først teller ned fra 3, sier LØP! og deretter blir skjult når den klikkes. Dette ordner du med følgende skript:

    når denne figuren klikkes
    si [3] i (1) sekunder
    si [2] i (1) sekunder
    si [1] i (1) sekunder
    si [LØP!] i (1) sekunder
    skjul
    

Test prosjektet

Klikk på det grønne flagget, og deretter på startknappen.

  • Teller knappen ned?

  • Sier den LØP!?

  • Blir den borte?

Vi ønsker at figurene bare beveger seg etter at kappløpet er startet og vi ønsker å vite når kappløpet er over.

Sjekkliste

  • For å vite når kappløpet har startet og sluttet lager vi en variabel med navnet kappløp. Variabelen skal være tilgjengelig for alle figurer. Fjern avhukingen foran variabelen, slik at den ikke vises på scenen.

  • Sett kappløp til 0 når spillet startes ved å forandre når grønt flagg klikkes-skriptet slik:

    når grønt flagg klikkes
    vis
    sett [kappløp v] til [0]
    
  • Når nedtellingen er ferdig og løpet begynner, forandrer vi kappløp-verdien til 1. Dette gjør du ved å legge til klossen Sett kappløp til 1 under si 1 i 1 sekunder i skriptet som starter med når denne figuren klikkes.

  • Nå må vi lage en regel som sier at figurene bare får lov til å bevege seg etter at løpet har startet – det vil si når kappløp har verdien 1. Klikk først på papegøyen. Så endrer du:

    når [a v] trykkes
    hvis <(kappløp) = [1]>
        gå (4) steg
    slutt
    
  • Gjenta det samme for løvinnen.

Test prosjektet

Klikk på det grønne flagget.

  • Kan løvinnen og papegøyen bare flytte seg når nedtellingen er ferdig?

Steg 4: Avslutte kappløpet

Nå vil vi finne ut hvem som vinner kappløpet, og i tillegg gjøre klart for en ny runde.

Sjekkliste

  • Legg til en kloss i papegøyens skript som sier sett kappløp til 0 hvis figuren berører kanten av skjermen:

    når [a v] trykkes
    hvis <(kappløp) = [1]>
        gå (4) steg
        hvis <berører [kant v]?>
            sett [kappløp v] til [0]
        slutt
    slutt
    
  • Spill så inn en lyd som skal spilles av hvis papegøyen vinner.

    Trykk på Lyder-fanen og deretter mikrofon-ikonet og spill inn en morsom trudelutt! Opptaket starter når du har klikket på rundingen slik at den blir rød. Klikk stopp (firkanten) når du er ferdig, og gi lyden et navn – for eksempel Polly. Noen nettlesere kan spørre om tillatelse til å spille inn lyd. Hvis du ikke ønsker dette, bruk lydene som følger med figurene.

  • Deretter legger du til klossene som spiller lyden og lar papegøyen fortelle at den vant:

    når [a v] trykkes
    hvis <(kappløp) = [1]>
        gå (4) steg
        hvis <berører [kant v]?>
            sett [kappløp v] til [0]
            spill lyden [Polly v]
            si [Polly vinner!] i (3) sekunder
        slutt
    slutt
    
  • Gjør tilsvarende for løvinnen.

Test prosjektet

Klikk på det grønne flagget.

  • Kan du trykke på startknappen og deretter bevege dyrene med tastene A og L?

  • Kommer riktig vinnerlyd og melding opp på skjermen?

Steg 5: Nullstill spillet

Når kappløpet er over må vi fortelle de andre figurene at spillet er over og nullstille spillet, slik at er klart for en ny runde.

Sjekkliste

  • Klikk på papegøyefiguren og legg til en kloss som sender melding Avslutt etter at figuren sier den har vunnet.

    når [a v] trykkes
    hvis <(kappløp) = [1]>
        gå (4) steg
        hvis <berører [kant v]?>
            sett [kappløp v] til [0]
            spill lyden [Polly v]
            si [Polly vinner! v] i (3) sekunder
            send melding [Avslutt v]
        slutt
    slutt
    
  • Vi trenger nå et nytt skript som lytter etter denne avslutningsmeldingen og flytter papegøyen tilbake til start.

    når jeg mottar [Avslutt v]
    sett x til (-170)
    
  • Gjør det samme for løvinnen. Test forskjellige x-verdier for å være sikker på at løvinnen og papegøyen starter fra samme sted.

  • For at figurene skal stå på startstreken når kappløpet starter den aller første gangen må vi også legge til følgende klosser på begge figurene:

    når grønt flagg klikkes
    sett x til (-170)
    
  • For at spillerne skal kunne klikke i gang nye runder må vi passe på at start-knappen kommer tilbake etter hver avsluttet runde. Klikk på startknapp-figuren og legg til et skript som viser knappen når avslutningsmeldingen blir mottatt.

    når jeg mottar [Avslutt v]
    vis
    

Test prosjektet

Klikk på det grønne flagget.

  • Kan du spille mot en venn? En av dere styrer papegøyen ved å trykke A, og den andre løvinnen ved å trykke L.

Lagre prosjektet

Spillet er ferdig! Hvis du vil kan du velge Legg ut slik at venner og familie også kan spille det.

Nedenfor er det noen forslag og ideer til hvordan du kan utvide spillet og gjøre det enda mer interessant.

Utfordring 1: Legg til en rakett!

  • Legg til en rakett som kan brukes én gang per kappløp og som flytter papegøyen eller løvinnen 30 steg på en gang.

  • Legg til en ny drakt med ild som kommer ut bak figurene. La denne aktiveres når raketten avfyres.

  • Lag en lyd som figuren kan gi fra seg når raketten avfyres.

Nedenfor er et forslag til hvordan et rakett-skript kan se ut. Du må legge til noen lyder og variabler på egen hånd.

når [q v] trykkes
hvis <<(kappløp) = [1]> og <(rakett_brukt) = [0]>>
    bytt drakt til [parrot-rakett v]
    sett [rakett_brukt v] til [1]
    gå (30) steg
    spill lyden [motorcycle passing v]
    hvis <berører [kant v]?>
        sett [kappløp v] til [0]
        spill lyden [Polly v]
        si [Polly vinner! v] i (3) sekunder
        send melding [Avslutt v]
    slutt
    bytt drakt til [parrot-a v]
slutt

Test prosjektet

Klikk på det grønne flagget.

  • Fungerer raketten slik du hadde planlagt?

  • Hva skjer om man forsøker å bruke raketten to ganger?

  • Hva skjer om man bruker raketten for å komme til mål?

Utfordring 2: Bruk egendefinerte klosser for å forenkle skriptet ditt

Koden som brukes til å sjekke om kappløpet er over brukes nå to steder for hver figur; når figuren beveger seg normalt og når den beveger seg med rakett. Vi kan forenkle skriptet vårt ved å bruke en egendefinert kloss. Dette er en samling kode som brukes flere steder. Det er nesten som at vi lager vår egen Scratch-kodekloss!

  • Velg papegøyens skript.

  • Velg Flere klosser-paletten og klikk så på Lag en kloss-knappen.

  • Kall klossen din ferdig og trykk OK.

  • Du vil nå få en definer ferdig-kloss i skriptvinduet ditt. Flytt den litt for seg selv.

  • Løsriv hele hvisberører kant?-klossen og dra den til definer ferdig-klossen.

  • Kan du dra ferdig-klossen fra paletten og bruke den på samme måte som andre kodeklosser?

  • Slett den andre hvisberører kant?-klossen fra skriptet ditt og erstatt også den med en ferdig-kloss.

    definer ferdig
    hvis <berører [kant v]?>
        sett [kappløp v] til [0]
        spill lyden [Polly v]
        si [Polly vinner! v] i (3) sekunder
        send melding [Avslutt v]
    
    når [a v] trykkes
    hvis <(kappløp) = [1]>
        gå (4) steg
        ferdig
    
    når [q v] trykkes
    hvis <<(kappløp) = [1]> og <(rakett_brukt) = [0]>>
        bytt drakt til [parrot-rakett v]
        sett [rakett_brukt v] til [1]
        gå (30) steg
        spill lyden [motorcycle passing v]
        ferdig
        bytt drakt til [parrot-a v]
    
  • Gjør dette koden din enklere å lese? Kan du lage en tilsvarende egendefinert kloss for løvinnen?

Test prosjektet

Klikk på det grønne flagget.

  • Virker spillet fortsatt slik det skal?

  • Er spillet ferdig når papegøyen eller løvinnen kommer til kanten av skjermen?

Lagre prosjektet

Veldig bra! Nå er du ferdig og kan kose deg med spillet du har laget!

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