1 00:00:01,162 --> 00:00:02,905 V předchozím videu jsme si ukázali, 2 00:00:02,905 --> 00:00:04,975 jak animovat míček odrážející se od stěn. 3 00:00:04,975 --> 00:00:06,927 A to pomocí funkce "draw" a příkazů "if". 4 00:00:07,101 --> 00:00:08,231 Pojďme si to zopakovat. 5 00:00:08,536 --> 00:00:11,976 Nejdříve si nastavíme počáteční proměnné pro polohu a rychlost míčku. 6 00:00:12,336 --> 00:00:14,964 Poté máme funkci "draw", což je speciální funkce, 7 00:00:14,964 --> 00:00:17,697 která je přivolávána opakovaně během celého běhu programu. 8 00:00:17,697 --> 00:00:20,672 Překreslíme pozadí a na plátně vykreslíme elipsu. 9 00:00:20,966 --> 00:00:25,038 Tuto elipsu umístíme na základě polohové a rychlostní proměnné, 10 00:00:25,198 --> 00:00:27,455 a na jejich vzájemném vztahu. 11 00:00:27,625 --> 00:00:31,146 Bez podmíněných příkazů by náš míček letěl donekonečna. 12 00:00:31,146 --> 00:00:32,963 Anebo dokud bychom nezmáčkli "restart". 13 00:00:33,093 --> 00:00:36,114 Proto jsme sem dolů přidali dva podmíněné příkazy. 14 00:00:36,154 --> 00:00:37,298 Těmi kontrolujeme to, 15 00:00:37,298 --> 00:00:40,679 zda se míček přibližuje k pravé či levé straně obrazovky. 16 00:00:40,699 --> 00:00:43,643 V tom případě změníme rychlost kladně nebo záporně, 17 00:00:43,643 --> 00:00:45,512 díky čemuž se míček odrazí zpátky. 18 00:00:45,542 --> 00:00:48,426 Teď tedy máme tento míček, který se odráží tam a zpět. 19 00:00:48,426 --> 00:00:49,156 Pořád dokola. 20 00:00:49,895 --> 00:00:50,988 Vypadá to celkem dobře. 21 00:00:51,118 --> 00:00:53,238 Nyní můžeme animovat hodně zajímavých věcí. 22 00:00:53,785 --> 00:00:57,367 Ráda bych do programu přidala uživatelovy interakce. 23 00:00:57,417 --> 00:01:00,006 V této chvíli náš program připomíná televizní seriál. 24 00:01:00,026 --> 00:01:01,958 Představte si, že ho dáte kamarádovi. 25 00:01:01,958 --> 00:01:04,910 Pokud neumí programovat, nemůže s programem nic moc dělat. 26 00:01:04,984 --> 00:01:06,382 Může se na něj jen dívat. 27 00:01:06,842 --> 00:01:10,250 Bylo by zajímavější, kdyby s programem mohl něco dělat. 28 00:01:10,293 --> 00:01:12,814 Pojďme tedy dát uživateli nějakou moc. 29 00:01:13,455 --> 00:01:17,529 Už jsme se naučili pracovat s dvěma speciálními globálními proměnnými. 30 00:01:17,529 --> 00:01:20,159 Jmenují se mouseX a mouseY. 31 00:01:21,178 --> 00:01:25,806 Tyto proměnné vracejí čísla popisující aktuální pozici uživatelovy myši. 32 00:01:25,840 --> 00:01:28,677 S jejich pomocí lze program snadno udělat interaktivnější. 33 00:01:28,677 --> 00:01:31,057 Jak je tedy použijeme? 34 00:01:31,081 --> 00:01:34,483 Měli bychom je použít uvnitř funkce "draw". 35 00:01:34,533 --> 00:01:39,132 To je totiž jediný kód, který je přivoláván opakovaně. 36 00:01:39,132 --> 00:01:42,204 Všechno mimo funkci "draw" je přivoláno pouze jednou. 37 00:01:42,757 --> 00:01:44,432 A to při spuštění programu. 38 00:01:44,572 --> 00:01:47,503 Čili použít mouseX a mouseY tam postrádá smysl. 39 00:01:47,794 --> 00:01:50,188 Uživatel neměl příležitost s programem interagovat. 40 00:01:52,412 --> 00:01:56,969 Ve funkci "draw" momentálně kreslíme míček v poloze 200 pixelů směrem dolů. 41 00:01:56,969 --> 00:02:00,574 Co kdybychom toto nahradily s mouseY? 42 00:02:00,574 --> 00:02:02,533 To je totiž poloha y. 43 00:02:02,570 --> 00:02:07,832 Teď bude poloha y závislá na uživatelově poloze y. 44 00:02:08,602 --> 00:02:10,101 Podívejte na to! 45 00:02:10,101 --> 00:02:11,661 Jezdím kurzorem nahoru a dolů. 46 00:02:11,661 --> 00:02:14,272 Tím můžu změnit osu, po které se kurzor pohybuje. 47 00:02:15,870 --> 00:02:18,610 Chtěla bych ale použít také mouseX. 48 00:02:18,610 --> 00:02:20,218 Jak na to? 49 00:02:20,218 --> 00:02:22,198 Co kdybychom udělali další míček? 50 00:02:22,198 --> 00:02:26,335 Ten by se pohyboval opačně: nahoru a dolů. 51 00:02:27,065 --> 00:02:30,350 Uživatel bude schopen ovládat jeho polohu x. 52 00:02:30,898 --> 00:02:32,592 Uděláme to teď tedy opačně. 53 00:02:32,592 --> 00:02:38,855 Napíšeme: ellipse, mouse X, poloha 50 a 50. 54 00:02:40,427 --> 00:02:41,860 Podívejte na to. 55 00:02:41,860 --> 00:02:46,934 Teď ovládám tyto dva míčky pohybující se v kolmém směru. 56 00:02:48,731 --> 00:02:50,149 Pořád ještě nejsem spokojená. 57 00:02:50,149 --> 00:02:53,305 Chtěla bych uživateli dát mnohem více moci. 58 00:02:53,305 --> 00:02:56,930 Chtěla bych, aby mohl uživatel sám spustit druhý míček. 59 00:02:56,930 --> 00:03:01,041 Aby ho mohl sám přivolat pomocí kliknutí myši. 60 00:03:02,661 --> 00:03:06,821 Potřebuji tedy zjistit, jak uživatelovo kliknutí rozeznat. 61 00:03:07,790 --> 00:03:12,494 Naštěstí přesně pro to existuje speciální booleanová proměnná. 62 00:03:12,874 --> 00:03:15,706 Jmenuje se mouseIsPressed. 63 00:03:15,706 --> 00:03:18,517 A můžeme ji použít ve vnitřku podmíněného příkazu. 64 00:03:20,487 --> 00:03:21,666 Toto je náš druhy míček. 65 00:03:21,880 --> 00:03:26,385 Můžeme napsat: if, mouseIsPressed. 66 00:03:28,398 --> 00:03:31,430 Následně zde přesuneme příkaz pro přivolání elipsy. 67 00:03:32,650 --> 00:03:34,801 Čili toto říká programu, 68 00:03:34,801 --> 00:03:41,383 že chceme nakreslit elipsu, jen když toto je pravdivé. 69 00:03:41,383 --> 00:03:45,314 A mouseIsPressed bude pravdivé jen při uživatelově zmáčknutí myši. 70 00:03:45,473 --> 00:03:47,224 Pojďme to zkusit. 71 00:03:49,782 --> 00:03:52,817 Teď můžu míček přivolat kdykoli při zmáčknutí myši. 72 00:03:52,817 --> 00:03:55,279 Takže se objevuje z paralelního vesmíru. 73 00:04:01,070 --> 00:04:04,624 Proměnná mouseIsPressed je zajímavá tím, 74 00:04:04,624 --> 00:04:07,534 že se mění na základě toho, co dělá uživatel. 75 00:04:07,534 --> 00:04:09,934 A ne na základě toho, co dělá program. 76 00:04:09,934 --> 00:04:12,963 A protože funkce "draw" je přivolávána opakovaně, 77 00:04:13,362 --> 00:04:16,264 výstup programu se v průběhu mění. 78 00:04:16,264 --> 00:04:17,944 A to s trochou uživatelova vstupu. 79 00:04:18,474 --> 00:04:23,484 Spojením podmíněných příkazů a mouseIsPressed máte vše potřebné pro to, 80 00:04:23,484 --> 00:04:27,067 abyste mohli dělat skvělé věci jako tlačítka či programy na kreslení.