WEBVTT 00:00:00.642 --> 00:00:02.229 Wracamy do Winstona. 00:00:02.329 --> 00:00:07.244 Mamy już zmienne "x" i "y" określające jego pozycję. 00:00:07.344 --> 00:00:10.193 Możemy przesuwać go na boki, 00:00:10.293 --> 00:00:13.440 w górę i w dół... Świetnie! 00:00:13.540 --> 00:00:18.992 Zmodyfikujmy wartości zmiennych. Dajmy 200 i 200. 00:00:19.092 --> 00:00:22.755 Zobaczmy jeszcze raz, jak ten program działa. 00:00:22.855 --> 00:00:24.404 Zaczynamy tutaj. 00:00:24.504 --> 00:00:28.049 Jest zmienna "eyeSize" określająca wielkość oczu. 00:00:28.149 --> 00:00:32.374 Mają 40 pikseli szerokości i 40 pikseli wysokości. 00:00:32.473 --> 00:00:35.481 Są też zmienne "x" i "y". 00:00:35.581 --> 00:00:38.564 Określają środek twarzy. 00:00:39.569 --> 00:00:44.475 Widzimy je w poleceniu "ellipse", które rysuje duże żółte koło. 00:00:45.735 --> 00:00:50.642 Zmienne "x" i "y" przydają się też przy oczach. 00:00:50.742 --> 00:00:53.939 Tutaj oczy są rozmieszczone 00:00:54.039 --> 00:00:56.447 względem środka twarzy, 00:00:56.547 --> 00:01:01.376 to znajduje się 50 pikseli w lewo od środka, 00:01:01.476 --> 00:01:04.813 a to - 100 pikseli w prawo. 00:01:05.659 --> 00:01:07.570 No dobrze. 00:01:07.670 --> 00:01:11.759 Dzięki temu możemy przesuwać Winstona w górę i w dół. 00:01:11.859 --> 00:01:16.964 Chcę kontrolować więcej elementów jego twarzy, z użyciem zmiennych. 00:01:17.064 --> 00:01:21.084 Zastanawiam się, co jeszcze możemy przechowywać jako zmienne. 00:01:21.184 --> 00:01:24.009 Przyjrzę się każdej linii kodu 00:01:24.109 --> 00:01:28.019 i poszukam ręcznie wpisanych liczb. 00:01:28.150 --> 00:01:30.902 To po prostu liczby, 00:01:31.002 --> 00:01:34.302 a nie zmienne. Nie zależą od zmiennych. 00:01:34.390 --> 00:01:37.773 Zacznijmy od pierwszego przywołania elipsy. 00:01:37.873 --> 00:01:41.197 Mamy 300 i 300 dla szerokości i wysokości. 00:01:41.793 --> 00:01:43.375 To po prostu liczby. 00:01:43.475 --> 00:01:48.344 Zróbmy z nich zmienną o nazwie "faceSize" 00:01:48.444 --> 00:01:50.782 i niech przechowuje 300. 00:01:50.882 --> 00:01:53.847 Wpiszę "faceSize"... 00:01:53.947 --> 00:01:56.076 "faceSize". Dobrze. 00:01:56.176 --> 00:01:58.229 I dalej. Kolory opuścimy. 00:01:58.359 --> 00:02:00.657 Teraz polecenia dotyczące elipsy 00:02:00.757 --> 00:02:04.786 są zmiennymi lub zależą od zmiennych. Na razie tak je zostawię. 00:02:04.886 --> 00:02:09.428 W poleceniu dotyczącym ust te wartości zależą od "x" i "y" 00:02:09.527 --> 00:02:12.632 a te - to po prostu liczby. 00:02:12.732 --> 00:02:14.095 150 i 150. 00:02:15.047 --> 00:02:17.743 Napiszemy więc "mouthSize"... 00:02:18.716 --> 00:02:21.005 Wartość: 150. 00:02:22.252 --> 00:02:24.915 Zastąpimy to "mouthSize". 00:02:25.015 --> 00:02:28.236 I... "mouthSize". W porządku. 00:02:28.336 --> 00:02:33.205 Mamy wielkości figur przechowane jako zmienne u góry. 00:02:33.305 --> 00:02:36.061 Dzięki temu będzie łatwo je zmieniać. 00:02:36.161 --> 00:02:38.805 O, tak. Winston jest głodny! 00:02:39.486 --> 00:02:41.498 A teraz... 00:02:41.598 --> 00:02:44.817 Zgłodniał, najadł się pączków 00:02:44.917 --> 00:02:46.760 i jest teraz olbrzymi! 00:02:47.356 --> 00:02:52.129 Ale nie podoba mi się coś w programie. 00:02:52.229 --> 00:02:55.513 Jeśli zmienię "faceSize" 00:02:55.613 --> 00:02:58.802 tak, żeby twarz była malutka, 00:02:59.536 --> 00:03:04.900 uzyskam coś dziwnego. Usta i oczy wystają. 00:03:05.000 --> 00:03:10.705 Wydaje się, że nie są nawet z nią połączone. To już nie twarz! 00:03:11.860 --> 00:03:16.464 Chcę, żeby przy zmianie wielkości twarzy 00:03:16.564 --> 00:03:21.549 usta i oczy także się zmieniały. 00:03:21.649 --> 00:03:24.405 Jeśli zmniejszę twarz o połowę, 00:03:24.505 --> 00:03:27.532 to niech usta zmaleją proporcjonalnie. 00:03:27.632 --> 00:03:29.401 To oznacza, że... 00:03:29.501 --> 00:03:32.810 chcę przedstawić wielkość oczu i ust 00:03:32.910 --> 00:03:35.798 jako ułamek wielkości twarzy. 00:03:36.711 --> 00:03:37.826 Dobrze. 00:03:37.926 --> 00:03:41.727 Określmy zmienne i pokażę, o co chodzi. 00:03:41.827 --> 00:03:44.235 Zacznijmy od "mouthSize". 00:03:44.335 --> 00:03:47.509 Teraz "faceSize" wynosi 300, 00:03:47.609 --> 00:03:50.643 a "mouthSize" to 150. 00:03:50.743 --> 00:03:53.081 Zestawiając te wartości, 00:03:53.181 --> 00:03:57.307 powiemy, że "faceSize" jest 2 razy większe od "faceSize". 00:03:57.407 --> 00:04:01.951 Albo że "mouthSize" jest połową "faceSize". 00:04:02.051 --> 00:04:04.064 Napiszemy to tak. 00:04:04.164 --> 00:04:08.075 Jedna druga razy "faceSize". 00:04:08.175 --> 00:04:12.122 Dobrze. Ta linia mówi, że bierzemy wartość "faceSize", 00:04:12.222 --> 00:04:15.698 mnożymy ją przez 0,5 i przechowujemy w "mouthSize". 00:04:15.798 --> 00:04:18.182 Jeśli więc zmienimy to, 00:04:18.281 --> 00:04:22.292 program wyliczy połowę i zrobi mniejsze usta. 00:04:22.392 --> 00:04:24.870 Doskonale. O to chodziło. 00:04:24.970 --> 00:04:27.447 Teraz wielkość oczu. 00:04:27.547 --> 00:04:31.278 "FaceSize" wynosi 300, a "eyeSize" 40. 00:04:31.378 --> 00:04:37.083 Zatem interesuje nas 40/300 wartości "faceSize". 00:04:37.183 --> 00:04:41.193 Czyli... zobaczmy... 4 przez 30... 00:04:41.293 --> 00:04:43.973 i skrócimy do 2/15. 00:04:44.080 --> 00:04:49.390 Mamy więc 2/15 "faceSize". 00:04:50.179 --> 00:04:52.594 Jeśli to sprawia wam trudność, 00:04:52.694 --> 00:04:56.947 bo nie znacie jeszcze ułamków, obejrzyjcie filmy w Khan Academy 00:04:57.047 --> 00:05:01.462 i wróćcie tutaj, gdy będziecie gotowi. 00:05:02.857 --> 00:05:06.934 No dobrze. Spróbujmy jeszcze raz zmienić wielkość twarzy. 00:05:07.034 --> 00:05:12.270 Ha! Patrzcie! Usta i oczy zmieniają się proporcjonalnie! 00:05:12.370 --> 00:05:15.495 Ale widzicie, że coś jest nie tak. 00:05:15.595 --> 00:05:19.463 Oczy i usta nadal wystają poza twarz, 00:05:19.563 --> 00:05:23.221 choć mają już odpowiednią wielkość. 00:05:23.321 --> 00:05:28.658 To dlatego, że zostały jeszcze liczby w "ellipse". 00:05:28.758 --> 00:05:32.191 A powinny być ułamkami zmiennych. 00:05:33.537 --> 00:05:34.878 Pokażę. 00:05:34.978 --> 00:05:37.711 Zatem elipsa-oko 00:05:37.811 --> 00:05:41.194 ma pozycję "x - 50". 00:05:41.294 --> 00:05:47.347 I zawsze tyle, nawet jeśli twarz jest mniejsza niż 50 pikseli. 00:05:47.447 --> 00:05:52.069 To bez sensu, bo lewe oko nie zmieści się w twarzy. 00:05:53.006 --> 00:05:57.424 Powinno być "x" minus ułamek wielkości twarzy. 00:05:57.524 --> 00:06:00.141 Ułamek wyliczymy tak samo. 00:06:00.241 --> 00:06:03.903 50 podzielić przez 300. 00:06:04.003 --> 00:06:06.016 A 50 przez 300... 00:06:06.116 --> 00:06:08.384 to 5/30 czyli 1/6. 00:06:08.484 --> 00:06:11.426 1/6 razy "faceSize". 00:06:12.218 --> 00:06:14.305 Tutaj też jest jeszcze 50, 00:06:14.405 --> 00:06:17.007 więc mamy to samo wyrażenie. 00:06:17.926 --> 00:06:20.039 Tu jest 100 przez 300. 00:06:20.139 --> 00:06:23.268 Czyli 1/3 razy "faceSize". 00:06:23.368 --> 00:06:25.149 Tutaj mamy 60, 00:06:25.249 --> 00:06:29.491 więc będzie 1/5 razy "faceSize", 00:06:29.591 --> 00:06:34.437 a tu znowu 50, więc 1/6. 00:06:34.537 --> 00:06:38.322 I jeszcze 40. To obliczyliśmy tutaj. 00:06:38.422 --> 00:06:39.849 2/15. 00:06:39.968 --> 00:06:44.863 2/15 razy "faceSize". 00:06:45.471 --> 00:06:48.289 Dobrze. Spróbujmy jeszcze raz. 00:06:48.389 --> 00:06:51.620 Patrzcie tylko! Pięknie! 00:06:51.720 --> 00:06:54.754 Bardzo dobrze. Powtórzmy. 00:06:54.854 --> 00:06:58.135 Stworzyliśmy zmienną przechowującą wielkość twarzy. 00:06:58.235 --> 00:07:00.281 Przechowuje ją jako liczbę. 00:07:00.381 --> 00:07:03.272 Mamy też zmienne "mouthSize" i "eyeSize", 00:07:03.372 --> 00:07:07.038 które przedstawiamy w postaci ułamków "faceSize", 00:07:07.138 --> 00:07:09.615 by ich wartości zmieniały się 00:07:09.715 --> 00:07:13.054 zależnie od wartości początkowej. 00:07:13.154 --> 00:07:17.371 Całą resztę także obliczamy na podstawie "faceSize", 00:07:17.471 --> 00:07:21.968 by zmieniała się pozycja elementów w twarzy. 00:07:22.068 --> 00:07:27.541 Już umiemy robić zmienne zależne od innych zmiennych. 00:07:27.641 --> 00:07:30.122 Mamy mnóstwo nowych możliwości. 00:07:30.222 --> 00:07:34.500 Uczcijmy to, sprawiając, że Winston będzie wielki! 00:07:34.600 --> 00:07:36.815 Tak, Winston!