[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:00.00,0:00:03.61,Default,,0000,0000,0000,,Pokračujeme s programem kreslícím\NWinstona. Dialogue: 0,0:00:03.61,0:00:06.00,Default,,0000,0000,0000,,Přidala jsem k němu nějaký text. Dialogue: 0,0:00:06.00,0:00:11.07,Default,,0000,0000,0000,,Bude potřeba umístit každého\NWinstona pod jeden štítek. Dialogue: 0,0:00:11.07,0:00:13.21,Default,,0000,0000,0000,,Daný štítek ho zobrazí\Nv určitém bodě života. Dialogue: 0,0:00:13.21,0:00:15.29,Default,,0000,0000,0000,,Teď máme Winstony rozházené všude. Dialogue: 0,0:00:15.29,0:00:20.45,Default,,0000,0000,0000,,To proto, že faceX a faceY jsou nastavena\Njako náhodná čísla. Dialogue: 0,0:00:20.45,0:00:26.71,Default,,0000,0000,0000,,Chceme tedy říci: „Toto je přesná pozice,\Nkde chceme, abys nakreslil Winstona." Dialogue: 0,0:00:26.71,0:00:30.32,Default,,0000,0000,0000,,Chceme mít možnost určit tuto pozici,\Nkdyž zavoláme funkci. Dialogue: 0,0:00:30.32,0:00:34.05,Default,,0000,0000,0000,,Přesně tak jako u funkcí elipse() a rect(). Dialogue: 0,0:00:34.05,0:00:40.46,Default,,0000,0000,0000,,Chceme dát Winstona sem, tady,\Njednoho sem a jednoho sem. Dialogue: 0,0:00:40.46,0:00:44.73,Default,,0000,0000,0000,,Nechceme náhodnou pozici, \Nkdyž zavoláme funkci. Dialogue: 0,0:00:44.73,0:00:49.56,Default,,0000,0000,0000,,Abychom to mohli udělat, musíme určit\N"parametry" funkce. Dialogue: 0,0:00:49.56,0:00:53.62,Default,,0000,0000,0000,,Musí být přímo v definici \Nnaší funkce, tedy zde úplně nahoře. Dialogue: 0,0:00:53.62,0:00:58.24,Default,,0000,0000,0000,,A pak se použijí, když voláme naší funkci,\Ntady dole. Dialogue: 0,0:00:58.24,0:01:03.08,Default,,0000,0000,0000,,Pro funkci drawWinston (),\Ntedy určíme parametry faceX a faceY. Dialogue: 0,0:01:03.08,0:01:10.67,Default,,0000,0000,0000,,Použijeme tyto hodnoty,\Nmísto náhodného generování. Dialogue: 0,0:01:10.67,0:01:15.29,Default,,0000,0000,0000,,Co bychom přidali do volání těchto funkcí,\Nkdyž chceme umístit Winstony pod text? Dialogue: 0,0:01:15.29,0:01:25.08,Default,,0000,0000,0000,,Chceme, aby x a y každého Winstona byly\Npodobné číslům, které jsou ve funkci text. Dialogue: 0,0:01:25.08,0:01:29.20,Default,,0000,0000,0000,,Možná tak o 10 pixelů níž u parametru y. Dialogue: 0,0:01:29.20,0:01:33.32,Default,,0000,0000,0000,,První dáme na 10 a 30. Dialogue: 0,0:01:33.32,0:01:41.20,Default,,0000,0000,0000,,Pak třeba 200 a 30 ...\N10 a 230 ... a 200 a 230. Dialogue: 0,0:01:41.20,0:01:45.79,Default,,0000,0000,0000,,Je to stejné jako textové souřadnice,\Njen přidáváme 10 ke každému y. Dialogue: 0,0:01:45.79,0:01:49.86,Default,,0000,0000,0000,,Chceme Winstona trošku níž než text. Dialogue: 0,0:01:49.98,0:01:51.85,Default,,0000,0000,0000,,Winston se ale stále nepohnul. Dialogue: 0,0:01:51.85,0:01:57.00,Default,,0000,0000,0000,,Neřekli jsme totiž naší funkci,\Nže chceme používat parametry. Dialogue: 0,0:01:57.00,0:02:00.25,Default,,0000,0000,0000,,Funkce stále tedy používá náhodné hodnoty \Nmísto parametrů. Dialogue: 0,0:02:00.25,0:02:05.13,Default,,0000,0000,0000,,Naší funkci ale chceme říct,\Nže místo náhodných čísel má použít zadané parametry. Dialogue: 0,0:02:05.13,0:02:09.56,Default,,0000,0000,0000,,Názvy parametrů proto musíme dát \Ndo těchto závorek. Dialogue: 0,0:02:09.56,0:02:15.28,Default,,0000,0000,0000,,Nazveme je faceX a faceY\Na oddělíme je čárkou. Dialogue: 0,0:02:15.28,0:02:20.70,Default,,0000,0000,0000,,Na tyto parametry už odkazujeme uvnitř funkce Dialogue: 0,0:02:20.70,0:02:25.46,Default,,0000,0000,0000,,a díky tomu nemusíme \Npřepisovat zbytek našeho kódu. Dialogue: 0,0:02:25.46,0:02:29.22,Default,,0000,0000,0000,,Pořád se ale nic nestalo. \NWinstonové se nepohnuli. Dialogue: 0,0:02:29.22,0:02:31.35,Default,,0000,0000,0000,,Podívejte se na začátek naší funkce. Dialogue: 0,0:02:31.35,0:02:36.36,Default,,0000,0000,0000,,Tady totiž přepisujeme faceX a faceY \Nnáhodnými hodnotami. Dialogue: 0,0:02:36.36,0:02:43.12,Default,,0000,0000,0000,,Takže teď nám stačí akorát\Nsmazat tyto řádky. Dialogue: 0,0:02:43.12,0:02:46.13,Default,,0000,0000,0000,,Nyní se už faceX a faceY dostávají\Nsprávně do funkce. Dialogue: 0,0:02:46.13,0:02:50.53,Default,,0000,0000,0000,,Používají se hodnoty,\Nkteré voláme. Dialogue: 0,0:02:50.53,0:02:54.36,Default,,0000,0000,0000,,Ale nepodařilo se nám trefit\Npozice úplně správně. Dialogue: 0,0:02:54.36,0:03:02.37,Default,,0000,0000,0000,,Zapomněli jsme, že text získá pozici podle\Nlevého horního rohu a obličej podle středu. Dialogue: 0,0:03:02.57,0:03:06.38,Default,,0000,0000,0000,,Musíme si teď trošku pohrát s čísly. Dialogue: 0,0:03:06.38,0:03:15.07,Default,,0000,0000,0000,,Měli bychom asi dost posunout x souřadnici. Dialogue: 0,0:03:15.07,0:03:18.61,Default,,0000,0000,0000,,Takže teď měním hodnoty, které\Nvkládáme do funkce. Dialogue: 0,0:03:18.61,0:03:22.52,Default,,0000,0000,0000,,Nemusím už měnit\Ncelou definici funkce. Dialogue: 0,0:03:22.52,0:03:27.38,Default,,0000,0000,0000,,Vždycky se použijí tato čísla\Njako hodnoty do naší funkce. Dialogue: 0,0:03:27.38,0:03:29.55,Default,,0000,0000,0000,,Přesně tak jako u funkcí \Nellipse() a rect(). Dialogue: 0,0:03:29.55,0:03:33.35,Default,,0000,0000,0000,,Pozice jsem už spravila, ale\Nvšimněte si, že Winston je příliš velký. Dialogue: 0,0:03:33.35,0:03:35.76,Default,,0000,0000,0000,,Obličeje se překrývají a \Nnevejdou se vedle sebe. Dialogue: 0,0:03:35.76,0:03:39.02,Default,,0000,0000,0000,,Kód k nakreslení obličeje je vložený\Npřímo do funkce. Dialogue: 0,0:03:39.02,0:03:42.37,Default,,0000,0000,0000,,Můžeme tedy změnit velikost\Nu všech najednou. Dialogue: 0,0:03:42.37,0:03:45.44,Default,,0000,0000,0000,,Stačí změnit řádek\Nkódu, který kreslí elipsu. Dialogue: 0,0:03:45.44,0:03:49.03,Default,,0000,0000,0000,,Pokud sem napíšu třeba 190,\Ntak bude Winston moc hubený. Dialogue: 0,0:03:49.03,0:03:55.32,Default,,0000,0000,0000,,Ještě sem 190, teď už se vejdou lépe. Dialogue: 0,0:03:55.32,0:04:03.16,Default,,0000,0000,0000,,Dál bychom ho mohli upravit tak,\Naby se vešel hezky mezi texty. Dialogue: 0,0:04:03.16,0:04:06.36,Default,,0000,0000,0000,,Zopakujme si teď, co tento kód dělá. Dialogue: 0,0:04:06.36,0:04:09.56,Default,,0000,0000,0000,,Definuje funkci\Nnazvanou drawWinston(). Dialogue: 0,0:04:09.56,0:04:14.67,Default,,0000,0000,0000,,Říká také, že tato funkce má dvě hodnoty\Noznačené jako faceX a faceY. Dialogue: 0,0:04:14.67,0:04:19.95,Default,,0000,0000,0000,,Tyto hodnoty jsou proměnné. \NMůžeme je tak použít kdekoli uvnitř funkce. Dialogue: 0,0:04:19.95,0:04:24.63,Default,,0000,0000,0000,,Třeba tady jsme je použili jako proměnné. Dialogue: 0,0:04:24.63,0:04:29.11,Default,,0000,0000,0000,,Poté, co máme funkci hotovou,\Nji můžeme zavolat, kdykoli chceme. Dialogue: 0,0:04:29.11,0:04:34.52,Default,,0000,0000,0000,,Můžeme jí předávat různé hodnoty,\Ntakže použije vždy nové hodnoty. Dialogue: 0,0:04:34.52,0:04:37.51,Default,,0000,0000,0000,,Ukázali jsme si tedy,\Njaká je výhoda funkcí. Dialogue: 0,0:04:37.51,0:04:41.33,Default,,0000,0000,0000,,Můžeme je použít na kód,\Nkterý potřebujeme použít opakovaně. Dialogue: 0,0:04:41.33,0:04:46.46,Default,,0000,0000,0000,,Můžeme také pomocí parametrů říct:\N„V kódu je něco, co můžeš změnit.“ Dialogue: 0,0:04:46.46,0:04:49.40,Default,,0000,0000,0000,,Je to jako recept.\NZapíšete si obecný postup. Dialogue: 0,0:04:49.40,0:04:52.81,Default,,0000,0000,0000,,A pak si uvědomíte, že potřebujete\Nuvařit pro 4 Winstony, ne pro 1. Dialogue: 0,0:04:52.81,0:04:55.94,Default,,0000,0000,0000,,Nemusíte začínat znovu.\NStačí upravit původní postup Dialogue: 0,0:04:55.94,0:04:57.63,Default,,0000,0000,0000,,a třeba to celé 4 krát vynásobit. Dialogue: 0,0:04:57.63,0:05:02.20,Default,,0000,0000,0000,,A teď je čas na vymýšlení\Nreceptů ve vašem kódu.