-
Ismét a Winstont rajzoló programnál vagyunk,
de most hozzáadtam néhány text() parancsot.
-
Azt szeretném, hogy mindegyik cím alatt
legyen egy Winston, hogy lássuk,
-
hogyan nézett ki korábban. De egyelőre össze-
vissza van...
-
Ez azért van, mert a faceX és faceY
változókhoz random számokat rendelünk.
-
Ehelyett most Winston pontos pozícióját
szeretnénk megadni,
-
és azt szeretném, hogy ezt a helyet a függvény
minden hívásánál meg tudjam változtatni,
-
pont úgy, ahogy az ellipse() és rect()
parancsoknál szoktuk tenni.
-
Ugyanis, ide és ide, na meg ide és ide is
szeretnék rakni egy Winstont!
-
Nem szeretném, hogy véletlenszerű helyeken
jelenjen meg mindig...
-
Ahhoz, hogy ezt meg tudjuk csinálni, meg kell
adnunk paramétereket a függvénynek!
-
Mind a definícióban itt felül, mind ott, ahol
meghívjuk - itt alul.
-
Winston kirajzolásához a faceX és faceY
változókhoz adunk át értéket,
-
és ezeket az értékeket fogják majd használni,
nem pedig random számokat.
-
Gondoljuk át, mit is adnánk át a
függvényhívásban itt lent?
-
Winstont a szöveg alá szeretnénk rakni, szóval
az X és Y változók értékének
-
nagyon hasonlónak kell lennie ahhoz, amit az
adott text() parancsoknak adtunk át.
-
Legyen mondjuk 10 pixellel lejjebb az Y-
pozíciója.
-
Az első akkor mondjuk 10 és 30,
-
a második mondjuk 200 és 30,
-
10 és 230, és végül 200, 230.
-
Ugyanaz, mint ezek a text() koordináták, csak
hozzáadok tízet az Y-hoz.
-
Na ez... szép és jó, de Winston nem igazán
mozgott...
-
Ez azért van, mert itt fent nem mondtuk meg a
függvényünknek,
-
hogy majd mi átadunk neki értékeket, így még
mindig a random értékeket használja.
-
Hogy megmondhassuk a függvénynek, hogy
figyeljen, majd mi megadjuk az infót,
-
nevet kell adnunk a zárójelek közötti
paramétereknek.
-
Legyen mondjuk faceX és faceY, vesszővel
elválasztva.
-
Azért ezt a nevet adjuk neki, mert hát ezt már
használjuk a függvényen belül,
-
és így nem kell átírni az egész kódot.
-
Na, de még mindig nem történik semmi,
Winston még mindig össze-vissza van...
-
Ha megnézed a függvényünk tetejét, láthatod,
hogy a faceX és faceY értékét
-
még mindig felülírjuk random számokkal.
-
Nem kell mást tennünk tehát, kitöröljük ezeket
a sorokat,
-
És tessék! A faceX és faceY változók
átadódnak a függvénynek,
-
és a függvény azokat az értékeket használja,
amiket itt megadtunk.
-
Ahogy láthatod, nem sikerült pontosan
megadnom Winston pozícióját,
-
mert elfeledkeztem arról, hogy a text() a bal
alsó sarok pozíciója szerint,
-
a face pedig a középpont szerint kerül
kirajzolásra.
-
Így most egy kicsit játszadoznom kell a
számokkal,
-
növelni kicsit az X-et, utána kicsit az Y-t...
-
Meg is van a bébi Winston, most a többit is
megcsinálom...
-
Már csak itt kell változtatgatnom az értékeket,
-
a függvény definícióját nem kell változtatnom
egyáltalán, hiszen
-
mindig azt az értéket fogja használni, amit
átadunk neki.
-
Pont úgy, mint az ellipse(), vagy a rect().
-
Rendben, így már egész jól pozícionáltam, de...
talán egy kicsit túl nagy így Winston.
-
Hatalmas, nem látszik tőle semmi, ez így nem
jó.
-
Mivel az őt kirajzoló kódot egy függvénybe
raktam,
-
egyszerűen meg tudom változtani mindet
egyszerre, egyetlen sornyi kóddal!
-
Ez az ellipse() felel érte, szóval legyen mondjuk
190, 190.
-
Remek! Most már sokkal jobban elfér,
-
és ha itt egy kicsit állítgatom még, akkor egész
jól el is helyezhetem.
-
Így jó is lesz.
-
Nézzük át még egyszer gyorsan, mit is csinál
ez a kódrészlet!
-
Definiál egy drawWinston függvényt, és
megmondja,
-
hogy 2 értéket vár majd, és a faceX és faceY
nevet adja nekik.
-
Ezek az értékek majd változókként jelennek
meg,
-
amiket tudunk majd a függvényen belül
használni - akárcsak a változókat, amiket
-
felül deklaráltunk.
-
Ezek után bármikor meghívhatjuk ezt a
függvényt,
-
miután deklaráltuk, és átadhatunk új értékeket,
amiket majd használni fog!
-
Így már látodhatod, hogy miért is annyira
szuperek a függvények!
-
Kitalálhatunk egy kis kódot, amit többször is
szeretnénk használni,
-
és megadhatunk paramétereket, hogy kicsit
meg is változtathassuk az eredményt.
-
Olyan, mint egy recept! Leírod az alap
instrukciókat, de aztán rájössz,
-
hogy igaziból 4 Winston kell, nem 1... Nem kell
újrakezdened,
-
csak megváltoztatod kicsit az eredeti
instrukciókat, és megszorzol mindent néggyel.
-
Így már gondolhatsz a kódodban kialakuló
receptekre is!