Bevægelse

move in scratch
Bevægelse i Scratch

Sprites kan ændres så de fx peger opad, nedad eller laver et hurtigt sideskift. Man har 360 grader fordelt i en cirkel, at boltre sig på. Men i modsætning til det vi normalt kender er der teknisk set ikke tale om talværdier fra 1 – 360. I stedet er cirklens værdier delt op i to. Med positive værdier i østlige retning, fra 0 i nord, ned mod 90 i øst, og endeligt 180 i syd. Og den anden retning(venstre) starter med -1, til -90 endelig -179.

move right
Som standers starter en Sprite med at pege 90 grader til højre på aksen.
move up
0 grader
turn in scratch
-149 grader

Vores sprite er som standard sat til at kunne bevæge sig alle 360 grader rund. Men vi kan også gøre to andre ting.

Sideskift

Sideskift får din sprite til at skifte side fra 90 til -90, alt afhængig af hvor på cirklen den bevæger sig. Denne teknik kan være god at bruge, når vi laver 2D platforms-spil.

turn in scratch
Skifte til venstre
turn in scratch
Skifte til højre

Den allersidste mulighed vi har er pilen, som er streget over. Den lukker ned for sideskift og drej. Den kan også være rigtig fin at benytte til 2D spil.

Koordinatsystemet

coordinates
Koordinaterne i Scratch

Koordinater i spilprogrammering og visuelle programmer i almindelighed, er gode at kende til. Måske kender du allerede X og Y koordinaterne. Hvis du ikke gør, så er det også helt fint. Du skal nok lære dem at kende, helt uden at anstrenge dig, i Scratch!

Man kalder også dette koordinatsystem for det kartesiske koordinatsystem som bygger på linjer, der skærer hinanden. Disse linjer kalder vi også for akserne. De består af en x og en y akse. Inden for 3D spil har vi derudover en Z akse, så vi kan lave dybde i vores punkter og dermed vise en optisk illusion om en 3. dimension. Den ekstra dimension skal vi dog ikke tænke på i Scratch. Her laver vi 2D spil.

X-aksen: Det bygger på en horisontal akse, der går fra punkter i minus(-) til punkter i plus(+). Denne akse kalder vi for X-aksen. I Scratch går koordinatnerne på X fra -240 til +240.

Y-aksen: Den vertikale akse kalder vi for y-aksen. Ligesom X-aksen har Y-aksen både en positiv og en negativ akse,

X og Y akserne skærer hinanden ved 0-punkterne. Dvs 0, 0. Det er også på dette punkt, at vores sprite starter.

default start at the cartesian coordinates in scratch
Vores sprite starter på aksernes skæringspunkt: 0, 0.

Er man i tvivl om, hvor henne en Scratch befinder sig, så er der både nedenstående parametrer med x og y samt retning.

positions

Man kan dog også lave flueben ved de tre variabler x position, y position og retning. Disse variabler vil blive vist i scenen.

cartesian coordinate
Retningen udregner med decimaler. En såkaldt float.

Gå til

gaa til i scratch

Ønsker du at bevæge din sprite kan du benytte blokken gå til. Her kan du vælge hvorhenne på aksernes punkter, at din sprite skal gå gen. I dette eksempel har vi sat den til at være på punkterne x:50 og y:65.

go to scratch coordinates

Glid til x, y

glid til i scratch

Glid 1 sek. til x() og y() får vores sprite til at glide i en flydende bevægelse til et nyt punkt. Du bestemmer selv antal sekunder og hvor henne på akserne i Scratch.

Sæt x og y

Sæt din sprite til x eller y, måske begge.

Sæt x til og sæt x til er fremragende til at indstille din sprite til at befinde sig bestemte steder i spillet eller animationen. Eksempelvis kan det være smart at bruge blokkene. Eksempelvis er de gode ved sceneskift ol. Man kan her tale om et statisk skift.

Spriten er nu sat til x: 20 og y:80.

Ændre x og y til

ændre x og y i scratch
Her ændre vi på x og y’s værdier.

Når vi bruger ændre y og x taler vi om en dynamisk ændring, som tager spriten fra et punkt og ændre dette til et nyt. Det kan man både gøre på x og y-aksen.

Her ændre vi spritens oprindelige position i x-aksen fra x:20 med 50 = x:70. Og vi ændre spritens oprindelige y position fra y:80 med -100 = y:-20.

positionerne ændres med x og y
Vores sprite er gået til nye punkter på koordinatsystemet.

Gå til tilfældig position

Gå til tilfældig position tildeler vores sprite nogle tilfældige værdier på koordinaterne, som den går til. Her starter vi på punkterne 0, 0 og bevæger os tilfældigt hen på x:203, y: -82.

sprite på koordinatsystem i Scratch
Spriten står på x: 0 og y: 0
Spriten står nu på x: 203 og y: -82
peg sprite i retning af musepil
Peg din sprite i retningen af din musepil

Du har måske lagt mærke til, at man kan klikke på den lille hvid pil, så man kan erstatte gå til tilfældig position med gå til musepil. Denne funktion får ens sprite til at gå til ens musepil. Så der er altså ikke tale om nogen tilfældighed her, om end denne funktion deler samme blok som gå til tilfældig position.

Gå () trin

Gå () trin er en af de mest benyttede blokke i scratch

Gå () trin er en af de allermest benyttede blokke i Scratch, idet den giver din sprite bevægelse og god kontrol over den. Man bruger den altid, når en sprite skal løbe rundt og bevæge sig i spillet. Trinene repræsenterer en pixel. Nem blok. Men vigtig blok!

scratch koordinat og sprite
Her står vores sprite i x: 0: y: 0.
Efter at have klikket på knappen gå 120 trin flytter spriten sig 120 pixels.

Peg i retning

peg i retning
Peg i retning roterer vores sprite

I Scratch kan vi roterer vores sprite inden for de 360 grader. Her roterer vi fra standard 90 til at pege i en ny retning på 150 grader. Den kommer således til at lægge sig lidt mod venstre nederste hjørne. Det havde været lettere, hvis folkene bag Scratch havde taget udgangspunkt i globale 360 grader, men man har valgt at gøre det lokalt. Derfor kan det forvirrer.

Fra 90 grader og 150 grader mod venstre.

Drej () grader

Drej grader blokken, roterer kort og godt vores sprite i forskellige retninger. Igen er det relevant at lægge mærke til, at graderne her er lokale og altså ikke negativt delt op.

drej spriten i forskellige grader
Du kan roterer spriten i begge retninger.
Spriten er her drejet 60 grader til højre og derefter drejet 20 grader mod venstre.

Sæt rotationsstil og hop tilbage

De sidste blokke i bevægelse, er hhv. sæt rotationsstil og hop tilbage ved kanten.

Bevæger spriten fra kanten og tilbage til modsatte side.

I mit eksempel har jeg brugt 3 blokke. Den første blok går 100 pixels på x aksen. Den anden, sæt rotationsstil til [venstre-højre] får vores sprite til at roterer modsat(vi kan også bruge denne blok til at få spriten til at dreje eller slet ikke gøre noget). Den tredje blok, hop tilbage ved kanten, får vores sprite tilbage i koordinatsystemets midterpunkter, når den har nået kanten,

Her ser du de tre blokke i aktion: https://scratch.mit.edu/projects/381919365