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