Straffespark

Introduksjon

Vi skal lage et enkelt fotballspill, hvor du skal prøve å score på så mange straffespark som mulig.

Steg 1: Katten og fotballbanen

Vi begynner med å lage en katt som kan bevege seg på en fotballbane.

Sjekkliste

  • når denne figuren klikkes
    gå (10) steg
    

Test prosjektet

Klikk på det grønne flagget.

Sjekkliste

  • når grønt flagg klikkes
    gå til x: (-180) y: (-30)
    

Lagre prosjektet

Du har nå skrevet et lite program! Scratch lagrer alt du gjør med jevne mellomrom. Det er likevel en god vane å lagre selv også innimellom.

Steg 2: Vi sparker ballen

Det neste vi trenger i spillet vårt er en ball!

Sjekkliste

  • når grønt flagg klikkes
    gå til x: (-125) y: (-60)
    vent til <berører [Leo v]?>
    for alltid
        gå (6) steg
    slutt
    

Test prosjektet

Klikk på det grønne flagget.

Steg 3: Vi trenger en keeper!

Vi skal nå gjøre spillet litt vanskeligere ved å programmere en keeper.

Sjekkliste

  • når grønt flagg klikkes
    gå til x: (100) y: (-50)
    pek i retning (0 v)
    for alltid
        gå (15) steg
        sprett tilbake ved kanten
    slutt
    

    Det er et par nye klosser i dette skriptet. Les programmet nøye. Hva tror du de nye klossene gjør?

Test prosjektet

Klikk på det grønne flagget.

Sjekkliste

  • Legg klossen sett størrelse til (100)% inn i for alltid-løkka. Du kan nå eksperimentere med å endre 100% til et annet tall til du finner en passende størrelse på keeperen. Om du har brukt blekkspruten som Keeper passer 50% ganske bra. Prøv deg frem!

Test prosjektet

Klikk på det grønne flagget.

Steg 4: Keeperen redder!

Nå er det på tide at keeperen redder ballen!

Vi skal nå lage noen tester som sier i fra når keeperen redder ballen, eller når ballen går i mål.

Sjekkliste

  • når grønt flagg klikkes
    gå til x: (-125) y: (-60)
    vent til <berører [Leo v]?>
    for alltid
        gå (6) steg
        hvis <berører [Keeper v]?>
            send melding [Redning v]
        ellers
        slutt
    slutt
    

    I klossen send melding [message1 v] må du velge Ny melding og deretter skrive inn Redning som meldingsnavn.

Meldinger er beskjeder som figurene i spillet kan sende seg i mellom uten at du egentlig ser det. Disse gjør det lett for flere figurer å reagere på ting som skjer.

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

    Et triks er å først skrive denne koden for Ball. Deretter kan du kopiere den til Keeper ved å dra koden til Keeper-figuren i figurvinduet nederst på skjermen.

Test prosjektet

Klikk på det grønne flagget.

Sjekkliste

Nå skal vi også sjekke om ballen har gått i mål. Vi gjør dette ved å undersøke hvor langt til høyre på skjermen ballen har beveget seg. Posisjonen til en figur i Scratch er beskrevet ved hjelp av koordinater: (x-posisjon) sier hvor en figur er sidelengs på skjermen, mens (y-posisjon) sier hvor langt opp eller ned på skjermen en figur er. Rett under scenen kan du se to tall merket x og y. Disse viser koordinatene til musepekeren.

  • når grønt flagg klikkes
    gå til x: (-125) y: (-60)
    vent til <berører [Leo v]?>
    for alltid
        gå (6) steg
        hvis <berører [Keeper v]?>
            send melding [Redning v]
        ellers
            hvis <(x-posisjon) > [160]>
                send melding [Mål v]
            slutt
        slutt
    slutt
    
  • når jeg mottar [Mål v]
    stopp [andre skript i figuren v] :: control
    
  • når jeg mottar [Mål v]
    si [Ja, det ble mål!!] i (2) sekunder
    

Test prosjektet

Klikk på det grønne flagget.

Endre farten

Du kan gjøre spillet enklere eller vanskeligere ved å endre farten på ballen og hvor fort keeperen beveger seg. Begge disse er bestemt av tallet som står i gå () steg-klossene til henholdsvis Ball og Keeper.

Prøv forskjellige tall for både fotballen og keeperen til du finner den kombinasjonen du liker best. Pass på at det blir litt vanskelig, men ikke umulig.

Steg 5: Førstemann til 10!

Vi skal tilslutt se på hvordan vi kan telle hvor mange mål som scores.

Sjekkliste

For å telle hvor mange mål du har scoret, og hvor mange redninger Keeper har gjort, skal vi bruke variabler.

  • når jeg mottar [Mål v]
    endre [Mål v] med (1)
    
  • når jeg mottar [Redning v]
    endre [Redninger v] med (1)
    

Test prosjektet

Klikk på det grønne flagget.

Sjekkliste

Avslutningsvis vil vi legge inn en test på om Leo klarer å score 10 mål eller Keeper klarer å redde 10 ganger. Dette er litt omfattende.

  • når grønt flagg klikkes
    sett [Mål v] til [0]
    sett [Redninger v] til [0]
    bytt bakgrunn til [goal1]
    send melding [Nytt spark v]
    
  • når grønt flagg klikkes
    

    med

    når jeg mottar [Nytt spark v]
    

    på både Leo, Ball og Keeper. For eksempel, på Leo blir skriptet seende slik ut:

    når jeg mottar [Nytt spark v]
    gå til x: (-180) y: (-30)
    
  • når jeg mottar [Mål v]
    endre [Mål v] med (1)
    vent (2) sekunder
    hvis <(Mål) < [10]>
        send melding [Nytt spark v]
    ellers
        bytt bakgrunn til [Seier v]
        stopp [alle v] :: control
    slutt
    
  • når jeg mottar [Redning v]
    endre [Redninger v] med (1)
    vent (2) sekunder
    hvis <(Redninger) < [10]>
        send melding [Nytt spark v]
    ellers
        bytt bakgrunn til [Tap v]
        stopp [alle v] :: control
    slutt
    

Test prosjektet

Klikk på det grønne flagget.

Lydeffekter

Du kan legge lydeffekter på spillet ditt ved å bruke klossene under Lyd-kategorien. Prøv for eksempel å legge på lyder når ballen sparkes, når keeperen redder eller når det blir mål.

For å finne flere lyder å bruke i spillet ditt kan du velge Lyder-fanen. Her kan du hente flere lyder fra Scratch-biblioteket eller til og med ta opp egne lyder. Eksperimenter og prøv deg frem!

Lagre spillet

Da er vi ferdige med Straffespark! Om du har noen ideer til hvordan du kan gjøre spillet enda morsommere så prøv dem selv!

Om du klikker Legg ut vil prosjektet ditt bli lagt ut på Scratch-hjemmesiden slik at andre kan spille det!

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