0:00:01.162,0:00:02.905 V předchozím videu [br]jsme si ukázali, 0:00:02.905,0:00:04.975 jak animovat míček[br]odrážející se od stěn. 0:00:04.975,0:00:06.927 A to pomocí funkce [br]"draw" a příkazů "if". 0:00:07.101,0:00:08.231 Pojďme si to zopakovat. 0:00:08.536,0:00:11.976 Nejdříve si nastavíme počáteční [br]proměnné pro polohu a rychlost míčku. 0:00:12.336,0:00:14.964 Poté máme funkci "draw",[br]což je speciální funkce, 0:00:14.964,0:00:17.697 která je přivolávána opakovaně[br]během celého běhu programu. 0:00:17.697,0:00:20.672 Překreslíme pozadí a[br]na plátně vykreslíme elipsu. 0:00:20.966,0:00:25.038 Tuto elipsu umístíme na základě [br]polohové a rychlostní proměnné, 0:00:25.198,0:00:27.455 a na jejich vzájemném vztahu. 0:00:27.625,0:00:31.146 Bez podmíněných příkazů by náš[br]míček letěl donekonečna. 0:00:31.146,0:00:32.963 Anebo dokud bychom[br]nezmáčkli "restart". 0:00:33.093,0:00:36.114 Proto jsme sem dolů[br]přidali dva podmíněné příkazy. 0:00:36.154,0:00:37.298 Těmi kontrolujeme to, 0:00:37.298,0:00:40.679 zda se míček přibližuje[br]k pravé či levé straně obrazovky. 0:00:40.699,0:00:43.643 V tom případě změníme[br]rychlost kladně nebo záporně, 0:00:43.643,0:00:45.512 díky čemuž se[br]míček odrazí zpátky. 0:00:45.542,0:00:48.426 Teď tedy máme tento míček,[br]který se odráží tam a zpět. 0:00:48.426,0:00:49.156 Pořád dokola. 0:00:49.895,0:00:50.988 Vypadá to celkem dobře. 0:00:51.118,0:00:53.238 Nyní můžeme animovat[br]hodně zajímavých věcí. 0:00:53.785,0:00:57.367 Ráda bych do programu [br]přidala uživatelovy interakce. 0:00:57.417,0:01:00.006 V této chvíli náš program[br]připomíná televizní seriál. 0:01:00.026,0:01:01.958 Představte si, že [br]ho dáte kamarádovi. 0:01:01.958,0:01:04.910 Pokud neumí programovat,[br]nemůže s programem nic moc dělat. 0:01:04.984,0:01:06.382 Může se na něj jen dívat. 0:01:06.842,0:01:10.250 Bylo by zajímavější, kdyby [br]s programem mohl něco dělat. 0:01:10.293,0:01:12.814 Pojďme tedy dát [br]uživateli nějakou moc. 0:01:13.455,0:01:17.529 Už jsme se naučili pracovat s dvěma [br]speciálními globálními proměnnými. 0:01:17.529,0:01:20.159 Jmenují se mouseX a mouseY. 0:01:21.178,0:01:25.806 Tyto proměnné vracejí čísla popisující [br]aktuální pozici uživatelovy myši. 0:01:25.840,0:01:28.677 S jejich pomocí lze program [br]snadno udělat interaktivnější. 0:01:28.677,0:01:31.057 Jak je tedy použijeme? 0:01:31.081,0:01:34.483 Měli bychom je použít[br]uvnitř funkce "draw". 0:01:34.533,0:01:39.132 To je totiž jediný kód, [br]který je přivoláván opakovaně. 0:01:39.132,0:01:42.204 Všechno mimo funkci "draw"[br]je přivoláno pouze jednou. 0:01:42.757,0:01:44.432 A to při spuštění programu. 0:01:44.572,0:01:47.503 Čili použít mouseX a mouseY[br]tam postrádá smysl. 0:01:47.794,0:01:50.188 Uživatel neměl příležitost[br]s programem interagovat. 0:01:52.412,0:01:56.969 Ve funkci "draw" momentálně kreslíme [br]míček v poloze 200 pixelů směrem dolů. 0:01:56.969,0:02:00.574 Co kdybychom toto [br]nahradily s mouseY? 0:02:00.574,0:02:02.533 To je totiž poloha y. 0:02:02.570,0:02:07.832 Teď bude poloha y závislá [br]na uživatelově poloze y. 0:02:08.602,0:02:10.101 Podívejte na to! 0:02:10.101,0:02:11.661 Jezdím kurzorem[br]nahoru a dolů. 0:02:11.661,0:02:14.272 Tím můžu změnit osu,[br]po které se kurzor pohybuje. 0:02:15.870,0:02:18.610 Chtěla bych ale [br]použít také mouseX. 0:02:18.610,0:02:20.218 Jak na to? 0:02:20.218,0:02:22.198 Co kdybychom udělali[br]další míček? 0:02:22.198,0:02:26.335 Ten by se pohyboval[br]opačně: nahoru a dolů. 0:02:27.065,0:02:30.350 Uživatel bude schopen[br]ovládat jeho polohu x. 0:02:30.898,0:02:32.592 Uděláme to teď tedy opačně. 0:02:32.592,0:02:38.855 Napíšeme: ellipse, mouse X,[br]poloha 50 a 50. 0:02:40.427,0:02:41.860 Podívejte na to. 0:02:41.860,0:02:46.934 Teď ovládám tyto dva míčky[br]pohybující se v kolmém směru. 0:02:48.731,0:02:50.149 Pořád ještě nejsem spokojená. 0:02:50.149,0:02:53.305 Chtěla bych uživateli[br]dát mnohem více moci. 0:02:53.305,0:02:56.930 Chtěla bych, aby mohl uživatel [br]sám spustit druhý míček. 0:02:56.930,0:03:01.041 Aby ho mohl sám přivolat[br]pomocí kliknutí myši. 0:03:02.661,0:03:06.821 Potřebuji tedy zjistit,[br]jak uživatelovo kliknutí rozeznat. 0:03:07.790,0:03:12.494 Naštěstí přesně pro to existuje[br]speciální booleanová proměnná. 0:03:12.874,0:03:15.706 Jmenuje se mouseIsPressed. 0:03:15.706,0:03:18.517 A můžeme ji použít ve vnitřku [br]podmíněného příkazu. 0:03:20.487,0:03:21.666 Toto je náš druhy míček. 0:03:21.880,0:03:26.385 Můžeme napsat: if, mouseIsPressed. 0:03:28.398,0:03:31.430 Následně zde přesuneme [br]příkaz pro přivolání elipsy. 0:03:32.650,0:03:34.801 Čili toto říká programu, 0:03:34.801,0:03:41.383 že chceme nakreslit elipsu,[br]jen když toto je pravdivé. 0:03:41.383,0:03:45.314 A mouseIsPressed bude pravdivé[br]jen při uživatelově zmáčknutí myši. 0:03:45.473,0:03:47.224 Pojďme to zkusit. 0:03:49.782,0:03:52.817 Teď můžu míček přivolat[br]kdykoli při zmáčknutí myši. 0:03:52.817,0:03:55.279 Takže se objevuje[br]z paralelního vesmíru. 0:04:01.070,0:04:04.624 Proměnná mouseIsPressed je zajímavá tím, 0:04:04.624,0:04:07.534 že se mění na základě toho, [br]co dělá uživatel. 0:04:07.534,0:04:09.934 A ne na základě toho,[br]co dělá program. 0:04:09.934,0:04:12.963 A protože funkce "draw"[br]je přivolávána opakovaně, 0:04:13.362,0:04:16.264 výstup programu[br]se v průběhu mění. 0:04:16.264,0:04:17.944 A to s trochou[br]uživatelova vstupu. 0:04:18.474,0:04:23.484 Spojením podmíněných příkazů [br]a mouseIsPressed máte vše potřebné pro to, 0:04:23.484,0:04:27.067 abyste mohli dělat skvělé věci jako[br]tlačítka či programy na kreslení.