-
Här har vi vårt ritprogram med Winston, men jag har lagt till lite text också.
-
Det vi nu ska göra är att placera en
Winston under varje etikett,
-
för att visa honom vid olika tillfällen i livet.
-
Just nu är han lite överallt. Det beror på att vi sätter
-
faceX och faceY till slumptal i funktionen.
-
Det vi egentligen vill kunna göra är att säga:
-
"På exakt den här positionen ska Winston ritas".
-
Vi vill kunna ange positionen
varje gång vi anropar funktionen,
-
På samma sätt som vi gör med ellipse och rect.
-
Vi vill kunna sätta en Winston här, en här, en annan här och en här,
-
vi vill inte få helt slumpmässiga positioner varje gång vi anropar funktionen.
-
För att kunna göra det måste vi ange
"parametrar" för funktionen,
-
både i vår funktionsdefinition
- här uppe i toppen -
-
och i vårt funktionsanrop, här nere, där vi gör själva anropet.
-
Till drawWinston, vill vi skicka faceX och faceY,
-
så att funktionen använder de värden vi skickar istället för att generera slumpmässiga värden. Det är mycket coolare
-
Vi börjar med att fundera på vad vi ska skicka in i funktionsanropen här nere.
-
Vi vill placera en Winstons under varje text, så vi vill förmodligen att X och Y för varje
-
Winston ska vara ganska lika siffrorna
vi skickade in i dom här text-funktionerna.
-
så Kanske... 10 pixlar lägre för Y.
-
Den första får då 10 och 30,
-
och sen kanske 200, 230 ...
-
nästa...10, 230...
-
200, 230.
-
Det är samma som textkoordinaterna,
Jag lägger bara till 10 på varje Y, '
-
för att jag vill ha dem lite längre ner.
-
Winston har inte flyttat sig än och Det är för att vi inte sagt till vår funktion här uppe
-
att vi skickar parametrar till den,
-
så den använder fortfarande sina slumpade värden.
-
För att berätta för funktionen att "Hörredu vi kommer skicka värden i stället"
-
så måste vi ge parametrarna namn i de här parenteserna.
-
Vi kallar dom faceX och faceY och
skiljer dem åt med ett komma,
-
Vi kallar dem det eftersom det är
vad vi kallar dem inuti funktionen
-
Då slipper vi skriva om resten av vår kod.
-
Men fortfarande har ingenting hänt;
Winston är fortfarande överallt.
-
Om vi tittar längst upp i vår funktion,
-
så skriver vi över faceX och faceY
med slumpmässiga värden.
-
Så, det enda vi behöver göra nu är att radera de här två raderna...
-
TADA!
-
Nu skickas faceX och faceY in i funktionen,
-
och den använder värdena
som vi anropar den med härifrån.
-
Vi ställde inte riktigt in Winstons position rätt, eftersom jag glömde att texten blir placerad
-
utifrån det övre vänstra hörnet och ansiktet placeras utifrån mitten. Där kom den logiska prylen och briljerade....igen..
-
Så vi får justera värdena lite här.
-
Vi får ändra X ganska mycket...
-
och ändra det här, okej ...
-
där har vi vår toddler(bebis) ...
-
sen de andra...
-
Jadå! Det enda vi behöver göra nu, är att ändra vad vi skickar in i funktionen,
-
vi behöver inte ändra någonting inuti själva funktionen,
-
eftersom den alltid kommer använda de värden vi skickar till den.
-
Precis som ellipse och rect.
-
Okej! Nu har vi spritt ut dem, men
jag tror att Winston är lite för stor.
-
Han överlappar sig själv och får inte riktigt plats.
-
Men, eftersom vi har skrivit rit-koden i en funktion,
-
kan vi kan ändra storleken på alla samtidigt
-
genom att ändra kodraden som ritar ellipsen.
-
Så, om vi gör honom till 190...
-
Ok! Winston bantar...
-
Och 190.
-
Najs! Nu borde han passa bättre och vi
kan fortsätta justera
-
så att han hamnar på plats.
-
alla 4 versionerna av honom ...Kanon!
-
Vi kollar lite på vad den här koden faktiskt gör.
-
Den definierar en funktion som heter drawWinston
-
och säger att funktionen tar två värden, inparametrar och kallar dem faceX och faceY,
-
Dessa värden kommer in som variabler som vi kan använda var som helst inom vår funktion,
-
precis som vi använda variablerna
som vi definierade högst upp
-
och sen kan vi anropa den här funktionen
-
när vi vill efter att vi definierat den,
-
och vi kan skicka in olika värden,
-
och den kommer att använda de nya värdena varje gång.
-
Sådärja!
-
Nu har du fått se vad som är coolt med funktioner.
-
Vi kan skriva kod som
-
vi tror att vi kommer vilja återanvända,
-
och samtidigt använda parametrar för att säga:
-
"Hallå, här är några grejer du kan styra själv för att justera resultatet."
-
Det är som ett recept. Du skriver ner de generella instruktionerna,
-
och om du plötsligt inser att du behöver mata fyra Winstons istället för en,
-
så behöver du inte börja om från början, Du justerar bara de ursprungliga instruktionerna
-
och multiplicerar allt med 4.
-
Nu kan du börja se din kod som recept, kanske efterrätt! Va, sa nån efterrätt? Var e den?