WEBVTT 00:00:00.877 --> 00:00:03.622 Wracamy do programu rysowania Winstona. 00:00:03.722 --> 00:00:05.851 Dodałam do niego tekst. 00:00:05.951 --> 00:00:08.707 Chcę narysować jednego Winstona 00:00:08.807 --> 00:00:12.863 pod każdym z tytułów, by pokazać go w różnych punktach życia. 00:00:12.963 --> 00:00:15.023 Teraz Winston jest wszędzie. 00:00:15.123 --> 00:00:17.949 Bo współrzędne „faceX” i „faceY” 00:00:18.049 --> 00:00:20.038 to losowe liczby w funkcji. 00:00:20.572 --> 00:00:26.424 A ja mówię komputerowi: „Winstona masz narysować tutaj!”. 00:00:26.524 --> 00:00:30.255 Chcę określać tę pozycję przy każdym wywołaniu funkcji, 00:00:30.355 --> 00:00:32.587 tak jak było z elipsą i prostokątem. 00:00:33.974 --> 00:00:37.941 Chcę mieć Winstona tutaj, tutaj, 00:00:38.041 --> 00:00:40.147 jednego tu, i jeszcze tu. 00:00:40.247 --> 00:00:43.746 Niech nie wyświetlają się losowo, gdy uruchomię funkcję. 00:00:44.768 --> 00:00:49.295 Musimy więc ustalić dla tej funkcji parametry. 00:00:49.395 --> 00:00:53.452 W jej definicji, u góry, 00:00:53.552 --> 00:00:57.701 oraz tu, na dole, gdzie ją wywołujemy. 00:00:57.801 --> 00:01:02.537 Dla funkcji „drawWinston()” mamy „faceX” i „faceY”. 00:01:03.219 --> 00:01:06.060 Każemy używać podanych wartości 00:01:06.160 --> 00:01:09.056 zamiast tych generowanych losowo. 00:01:10.495 --> 00:01:15.023 Zastanówmy się, co umieścić w wywołaniu funkcji. 00:01:15.123 --> 00:01:18.088 Umieszczamy Winstona pod każdą wizytówką, 00:01:18.188 --> 00:01:21.432 więc niech „x” i „y” każdego Winstona 00:01:21.532 --> 00:01:24.706 odzwierciedla liczby w punktach „text()”. 00:01:24.806 --> 00:01:28.189 Może „y” dajmy 10 pikseli niżej. 00:01:28.289 --> 00:01:32.601 Pierwszy Winston będzie na 10,30, 00:01:32.701 --> 00:01:37.338 następny na 200, 230... 00:01:37.438 --> 00:01:41.030 10, 230... i 200, 230. 00:01:41.130 --> 00:01:45.093 Jak ze współrzędnymi tekstu, dodaję 10 do każdego „y”, 00:01:45.193 --> 00:01:47.635 bo chcę obniżyć rysunek. 00:01:49.551 --> 00:01:51.502 Winston się nie ruszył. 00:01:51.602 --> 00:01:55.186 Nie powiedzieliśmy funkcji 00:01:55.286 --> 00:01:59.768 o parametrach, więc używa wartości losowych. 00:01:59.868 --> 00:02:04.017 Żeby powiedzieć funkcji: „Podamy ci informacje”, 00:02:04.117 --> 00:02:09.032 musimy w nawiasach wpisać nazwy parametrów. 00:02:09.133 --> 00:02:11.750 Nazwiemy je „faceX” i „faceY”, 00:02:12.596 --> 00:02:14.745 rozdzielimy przecinkiem. 00:02:14.845 --> 00:02:17.322 Nazywamy je tak, 00:02:17.422 --> 00:02:20.805 bo będziemy się do nich odnosić wewnątrz funkcji. 00:02:20.905 --> 00:02:23.801 Nie trzeba zmieniać reszty programu. 00:02:24.819 --> 00:02:29.072 Ale nadal bez zmian: Winstonów wszędzie pełno! 00:02:29.172 --> 00:02:31.539 U góry funkcji zobaczymy, 00:02:31.639 --> 00:02:35.573 że w „faceX” i „faceY” wciąż pojawiają się wartości losowe. 00:02:35.673 --> 00:02:38.987 Musimy skasować te wiersze... 00:02:41.747 --> 00:02:46.718 Teraz „faceX” i „faceY” wchodzą do funkcji, 00:02:46.818 --> 00:02:50.062 która używa podanych przez nas wartości. 00:02:50.162 --> 00:02:53.824 Źle ustawiłam Winstona, 00:02:53.924 --> 00:02:59.188 bo zapomniałam, że tekst pozycjonujemy względem lewego górnego rogu, 00:02:59.288 --> 00:03:01.556 a twarz - względem środka. 00:03:01.656 --> 00:03:06.479 Muszę więc trochę pokombinować z cyferkami. 00:03:06.781 --> 00:03:09.637 Przesunę „x”, daleko... 00:03:09.737 --> 00:03:12.841 i to tutaj. Nasz bobasek... 00:03:12.941 --> 00:03:14.676 Przejdziemy tutaj... 00:03:14.776 --> 00:03:18.448 i wprowadzimy to do funkcji. 00:03:18.548 --> 00:03:22.570 Nie muszę zmieniać definicji funkcji. 00:03:22.670 --> 00:03:25.519 Zawsze przyjmie wartości, które wprowadzimy. 00:03:25.619 --> 00:03:28.592 Jak z elipsą i prostokątem. 00:03:28.692 --> 00:03:33.461 Umiejscowiłam Winstona, ale jest za duży. 00:03:33.561 --> 00:03:35.666 Nakłada się na inne, nie pasuje. 00:03:35.766 --> 00:03:39.072 Kod rysowania umieściłam w funkcji, 00:03:39.172 --> 00:03:42.563 mogę więc zmienić rozmiar Winstonów, 00:03:42.663 --> 00:03:45.532 zmieniając jeden wiersz kodu rysujący elipsę. 00:03:45.632 --> 00:03:50.829 Zróbmy może 190... Winston przechodzi na dietę! 00:03:50.929 --> 00:03:54.057 Będzie pasował lepiej. 00:03:54.157 --> 00:03:55.961 Mogę tak robić dalej, 00:03:56.061 --> 00:03:59.026 żeby się tu zmieścił. 00:04:01.112 --> 00:04:02.137 Super! 00:04:02.880 --> 00:04:06.363 Powtórzmy, co robi program. 00:04:06.463 --> 00:04:09.150 Definiuje funkcję „drawWinston” 00:04:09.250 --> 00:04:12.215 i mówi, że funkcja przyjmuje dwie wartości 00:04:12.315 --> 00:04:14.931 określone jako „faceX” i „faceY”. 00:04:15.031 --> 00:04:20.226 Są to zmienne, których możemy używać wszędzie w funkcji, 00:04:20.326 --> 00:04:23.221 tak jak było ze zmiennymi określanymi u góry. 00:04:24.405 --> 00:04:29.344 Po zdefiniowaniu funkcji przywołujemy ją, gdy chcemy; 00:04:29.444 --> 00:04:31.232 możemy wprowadzać wartości, 00:04:31.332 --> 00:04:33.809 a ona będzie ich używać. 00:04:34.861 --> 00:04:37.292 Już wiecie, jak świetne są funkcje. 00:04:37.392 --> 00:04:40.938 Przydają się, gdy chcemy używać jakiegoś kodu wiele razy. 00:04:41.038 --> 00:04:43.519 Podajemy parametry, mówiąc komputerowi: 00:04:43.619 --> 00:04:46.627 „Zmień coś w tym programie, dostosuj go”. 00:04:46.727 --> 00:04:49.672 Jak przepis kulinarny. Macie ogólne instrukcje, 00:04:49.772 --> 00:04:53.082 a gdy przyjdzie nakarmić 4 Winstonów zamiast jednego, 00:04:53.182 --> 00:04:58.028 nie trzeba pisać przepisu od nowa, wystarczy pomnożyć wszystko przez 4. 00:04:58.128 --> 00:05:02.486 Możecie już wymyślać przepisy do swoich kodów. Pycha!