0:00:00.000,0:00:03.614 Pokračujeme s programem kreslícím[br]Winstona. 0:00:03.614,0:00:06.001 Přidala jsem k němu nějaký text. 0:00:06.001,0:00:11.072 Bude potřeba umístit každého[br]Winstona pod jeden štítek. 0:00:11.072,0:00:13.210 Daný štítek ho zobrazí[br]v určitém bodě života. 0:00:13.210,0:00:15.287 Teď máme Winstony rozházené všude. 0:00:15.287,0:00:20.449 To proto, že faceX a faceY jsou nastavena[br]jako náhodná čísla. 0:00:20.449,0:00:26.714 Chceme tedy říci: „Toto je přesná pozice,[br]kde chceme, abys nakreslil Winstona." 0:00:26.714,0:00:30.316 Chceme mít možnost určit tuto pozici,[br]když zavoláme funkci. 0:00:30.316,0:00:34.048 Přesně tak jako u funkcí elipse() a rect(). 0:00:34.048,0:00:40.460 Chceme dát Winstona sem, tady,[br]jednoho sem a jednoho sem. 0:00:40.460,0:00:44.733 Nechceme náhodnou pozici, [br]když zavoláme funkci. 0:00:44.733,0:00:49.562 Abychom to mohli udělat, musíme určit[br]"parametry" funkce. 0:00:49.562,0:00:53.617 Musí být přímo v definici [br]naší funkce, tedy zde úplně nahoře. 0:00:53.617,0:00:58.235 A pak se použijí, když voláme naší funkci,[br]tady dole. 0:00:58.235,0:01:03.075 Pro funkci drawWinston (),[br]tedy určíme parametry faceX a faceY. 0:01:03.075,0:01:10.668 Použijeme tyto hodnoty,[br]místo náhodného generování. 0:01:10.668,0:01:15.287 Co bychom přidali do volání těchto funkcí,[br]když chceme umístit Winstony pod text? 0:01:15.287,0:01:25.081 Chceme, aby x a y každého Winstona byly[br]podobné číslům, které jsou ve funkci text. 0:01:25.081,0:01:29.198 Možná tak o 10 pixelů níž u parametru y. 0:01:29.198,0:01:33.316 První dáme na 10 a 30. 0:01:33.316,0:01:41.195 Pak třeba 200 a 30 ...[br]10 a 230 ... a 200 a 230. 0:01:41.195,0:01:45.793 Je to stejné jako textové souřadnice,[br]jen přidáváme 10 ke každému y. 0:01:45.793,0:01:49.855 Chceme Winstona trošku níž než text. 0:01:49.985,0:01:51.853 Winston se ale stále nepohnul. 0:01:51.853,0:01:57.001 Neřekli jsme totiž naší funkci,[br]že chceme používat parametry. 0:01:57.001,0:02:00.247 Funkce stále tedy používá náhodné hodnoty [br]místo parametrů. 0:02:00.247,0:02:05.134 Naší funkci ale chceme říct,[br]že místo náhodných čísel má použít zadané parametry. 0:02:05.134,0:02:09.558 Názvy parametrů proto musíme dát [br]do těchto závorek. 0:02:09.558,0:02:15.279 Nazveme je faceX a faceY[br]a oddělíme je čárkou. 0:02:15.279,0:02:20.704 Na tyto parametry už odkazujeme uvnitř funkce 0:02:20.704,0:02:25.457 a díky tomu nemusíme [br]přepisovat zbytek našeho kódu. 0:02:25.457,0:02:29.223 Pořád se ale nic nestalo. [br]Winstonové se nepohnuli. 0:02:29.223,0:02:31.353 Podívejte se na začátek naší funkce. 0:02:31.353,0:02:36.361 Tady totiž přepisujeme faceX a faceY [br]náhodnými hodnotami. 0:02:36.361,0:02:43.117 Takže teď nám stačí akorát[br]smazat tyto řádky. 0:02:43.117,0:02:46.127 Nyní se už faceX a faceY dostávají[br]správně do funkce. 0:02:46.127,0:02:50.526 Používají se hodnoty,[br]které voláme. 0:02:50.526,0:02:54.361 Ale nepodařilo se nám trefit[br]pozice úplně správně. 0:02:54.361,0:03:02.371 Zapomněli jsme, že text získá pozici podle[br]levého horního rohu a obličej podle středu. 0:03:02.572,0:03:06.383 Musíme si teď trošku pohrát s čísly. 0:03:06.383,0:03:15.072 Měli bychom asi dost posunout x souřadnici. 0:03:15.072,0:03:18.613 Takže teď měním hodnoty, které[br]vkládáme do funkce. 0:03:18.613,0:03:22.518 Nemusím už měnit[br]celou definici funkce. 0:03:22.518,0:03:27.375 Vždycky se použijí tato čísla[br]jako hodnoty do naší funkce. 0:03:27.375,0:03:29.548 Přesně tak jako u funkcí [br]ellipse() a rect(). 0:03:29.548,0:03:33.348 Pozice jsem už spravila, ale[br]všimněte si, že Winston je příliš velký. 0:03:33.348,0:03:35.756 Obličeje se překrývají a [br]nevejdou se vedle sebe. 0:03:35.756,0:03:39.019 Kód k nakreslení obličeje je vložený[br]přímo do funkce. 0:03:39.019,0:03:42.374 Můžeme tedy změnit velikost[br]u všech najednou. 0:03:42.374,0:03:45.439 Stačí změnit řádek[br]kódu, který kreslí elipsu. 0:03:45.439,0:03:49.034 Pokud sem napíšu třeba 190,[br]tak bude Winston moc hubený. 0:03:49.034,0:03:55.324 Ještě sem 190, teď už se vejdou lépe. 0:03:55.324,0:04:03.165 Dál bychom ho mohli upravit tak,[br]aby se vešel hezky mezi texty. 0:04:03.165,0:04:06.361 Zopakujme si teď, co tento kód dělá. 0:04:06.361,0:04:09.557 Definuje funkci[br]nazvanou drawWinston(). 0:04:09.557,0:04:14.673 Říká také, že tato funkce má dvě hodnoty[br]označené jako faceX a faceY. 0:04:14.673,0:04:19.949 Tyto hodnoty jsou proměnné. [br]Můžeme je tak použít kdekoli uvnitř funkce. 0:04:19.949,0:04:24.632 Třeba tady jsme je použili jako proměnné. 0:04:24.632,0:04:29.113 Poté, co máme funkci hotovou,[br]ji můžeme zavolat, kdykoli chceme. 0:04:29.113,0:04:34.517 Můžeme jí předávat různé hodnoty,[br]takže použije vždy nové hodnoty. 0:04:34.517,0:04:37.510 Ukázali jsme si tedy,[br]jaká je výhoda funkcí. 0:04:37.510,0:04:41.329 Můžeme je použít na kód,[br]který potřebujeme použít opakovaně. 0:04:41.329,0:04:46.460 Můžeme také pomocí parametrů říct:[br]„V kódu je něco, co můžeš změnit.“ 0:04:46.460,0:04:49.405 Je to jako recept.[br]Zapíšete si obecný postup. 0:04:49.405,0:04:52.810 A pak si uvědomíte, že potřebujete[br]uvařit pro 4 Winstony, ne pro 1. 0:04:52.810,0:04:55.941 Nemusíte začínat znovu.[br]Stačí upravit původní postup 0:04:55.941,0:04:57.632 a třeba to celé 4 krát vynásobit. 0:04:57.632,0:05:02.205 A teď je čas na vymýšlení[br]receptů ve vašem kódu.