Wracamy do programu
rysowania Winstona.
Dodałam do niego tekst.
Chcę narysować jednego Winstona
pod każdym z tytułów, by pokazać go
w różnych punktach życia.
Teraz Winston jest wszędzie.
Bo współrzędne „faceX” i „faceY”
to losowe liczby w funkcji.
A ja mówię komputerowi:
„Winstona masz narysować tutaj!”.
Chcę określać tę pozycję
przy każdym wywołaniu funkcji,
tak jak było z elipsą i prostokątem.
Chcę mieć Winstona tutaj, tutaj,
jednego tu, i jeszcze tu.
Niech nie wyświetlają się
losowo, gdy uruchomię funkcję.
Musimy więc ustalić
dla tej funkcji parametry.
W jej definicji, u góry,
oraz tu, na dole,
gdzie ją wywołujemy.
Dla funkcji „drawWinston()”
mamy „faceX” i „faceY”.
Każemy używać podanych wartości
zamiast tych generowanych losowo.
Zastanówmy się, co umieścić
w wywołaniu funkcji.
Umieszczamy Winstona
pod każdą wizytówką,
więc niech „x” i „y” każdego Winstona
odzwierciedla liczby
w punktach „text()”.
Może „y” dajmy 10 pikseli niżej.
Pierwszy Winston będzie na 10,30,
następny na 200, 230...
10, 230... i 200, 230.
Jak ze współrzędnymi tekstu,
dodaję 10 do każdego „y”,
bo chcę obniżyć rysunek.
Winston się nie ruszył.
Nie powiedzieliśmy funkcji
o parametrach, więc używa
wartości losowych.
Żeby powiedzieć funkcji:
„Podamy ci informacje”,
musimy w nawiasach wpisać
nazwy parametrów.
Nazwiemy je „faceX” i „faceY”,
rozdzielimy przecinkiem.
Nazywamy je tak,
bo będziemy się do nich
odnosić wewnątrz funkcji.
Nie trzeba zmieniać
reszty programu.
Ale nadal bez zmian:
Winstonów wszędzie pełno!
U góry funkcji zobaczymy,
że w „faceX” i „faceY”
wciąż pojawiają się wartości losowe.
Musimy skasować te wiersze...
Teraz „faceX” i „faceY”
wchodzą do funkcji,
która używa
podanych przez nas wartości.
Źle ustawiłam Winstona,
bo zapomniałam, że tekst pozycjonujemy
względem lewego górnego rogu,
a twarz - względem środka.
Muszę więc trochę
pokombinować z cyferkami.
Przesunę „x”, daleko...
i to tutaj. Nasz bobasek...
Przejdziemy tutaj...
i wprowadzimy to do funkcji.
Nie muszę zmieniać
definicji funkcji.
Zawsze przyjmie wartości,
które wprowadzimy.
Jak z elipsą i prostokątem.
Umiejscowiłam Winstona,
ale jest za duży.
Nakłada się na inne, nie pasuje.
Kod rysowania umieściłam w funkcji,
mogę więc zmienić
rozmiar Winstonów,
zmieniając jeden wiersz kodu
rysujący elipsę.
Zróbmy może 190...
Winston przechodzi na dietę!
Będzie pasował lepiej.
Mogę tak robić dalej,
żeby się tu zmieścił.
Super!
Powtórzmy, co robi program.
Definiuje funkcję „drawWinston”
i mówi, że funkcja przyjmuje
dwie wartości
określone jako „faceX” i „faceY”.
Są to zmienne, których możemy
używać wszędzie w funkcji,
tak jak było ze zmiennymi
określanymi u góry.
Po zdefiniowaniu funkcji
przywołujemy ją, gdy chcemy;
możemy wprowadzać wartości,
a ona będzie ich używać.
Już wiecie, jak świetne są funkcje.
Przydają się, gdy chcemy
używać jakiegoś kodu wiele razy.
Podajemy parametry,
mówiąc komputerowi:
„Zmień coś w tym programie,
dostosuj go”.
Jak przepis kulinarny.
Macie ogólne instrukcje,
a gdy przyjdzie nakarmić
4 Winstonów zamiast jednego,
nie trzeba pisać przepisu od nowa,
wystarczy pomnożyć wszystko przez 4.
Możecie już wymyślać przepisy
do swoich kodów. Pycha!