Variabler i Scratch

I dette indlæg vil jeg fortælle om variabler i Scratch, hvad det er, og hvordan du bruger dem i dit Scratch-program!

Hvad er en variabel?

Variabler er noget af det allervigtigste når man skal lave et hvilket som helst program. De kan godt virke lidt mystiske og fremmede hvis man ikke har brugt dem før, men når først du har lært dem at kende, så er det egentligt meget simpelt.

En variabel er en slags beholder til data, så programmet kan gemme det til senere brug i koden. Data kan for eksempel være et tal så som spillerens score, eller et stykke tekst så som spillerens navn, så programmet ikke skal spørge om det hver gang det skal bruges. Tal og tekst samt mange andre kaldes for datatyper.

Lokale og globale variabler

Der er findes to slags variabler: lokale og globale.

En lokal variabel er en variabel som kun findes inde i den sprite som den var lavet i. Det gør dem smarte til at gemme ting som for eksempel spritens position og rotation, dens tilstand (fx. sover, går, løber), hvad den har i hånden eller meget andet. Scratch klarer dog det meste af der her for dig, så du ikke skal bekymre dig om det.

En lokal variabel er kun tilgængelig for den sprite den blev lavet i. Det vil sige at spiller 1 ikke har adgang til spiller 2’s lokale variabler, og vice versa. På den måde behøver du ikke at finde på nye navne til den samme variabel i hver sprite.

En global variabel er en variabel som ikke findes i én bestemt sprite, men i stedet tilhører hele programmet. Det gør den god til at holde styr på ting som spillerens score eller navn.

Hvordan bruger man variabler?

Slut med teori, i gang med at kode!

For at lave en variabel, skal du gå ind i ‘Data’-menuen og trykke på ‘Lav en Variabel’:

 

Nu kommer der et pop-up vindue hvor du skal skrive navnet på din variabel, og vælge om den skal være lokal eller global. De har dog kaldt det noget andet, prøv at se om du kan gætte hvilken mulighed der betyder hvad. (psst, ‘For alle sprites’ betyder at den er global, og ‘Kun for denne sprite’ betyder at den er lokal)

Lad os kalde den “score” og gøre den tilgængelig for alle sprites, da det ikke er én bestemt sprite der skal holde styr på scoren. Når du er færdig, så tryk på ‘OK’

Der er nu kommet en masse blokke under ‘Data’-menuen.

Den første blok, den som er rund, er den værdi som variablen indeholder. Hvis variablen indeholder tallet 12, så vil blokken opføre sig præcist som hvis du bare havde skrevet 12 i koden. Det gælder for alle datatyper.

Hvis vi bruger den lige nu, så vil den bare sige 0. Det er fordi vi ikke har fortalt den hvad den skal indeholde. Det bruger vi den blok nedenunder til, den der hedder ‘sæt score til x‘. Du kan skrive lige hvad du vil i feltet.

Her sætter vi variablen ‘score‘ til “Hej med dig”. Derefter bruger vi ‘sig’ blokken til at få vores sprite til at sige værdien i variablen, og rigtig nok, så siger vores sprite ‘Hej med dig’

Blokken der hedder ‘ændr score med x‘ virker kun hvis variabelen indeholder et tal. Den tager tallet i variablen og så lægger den tallet til højre til.

De to sidste klodser er bare for at vise (og skjule) variabelens værdi på skærmen.

Lad os lave et simpelt clicker-spil for at demonstrere det hele.

Når programmet starter sættes variablen ‘score’ til 0. Hver gang vi klikker på spriten ændres værdien i ‘score’ med 1, og så vises vores score i en taleboble.

Du kan prøve det selv (det kræver Adobe Flash Player for at spille det):