WEBVTT 00:00:00.000 --> 00:00:02.904 A je tu další animace. 00:00:02.904 --> 00:00:05.186 Tentokrát tu máme míč pohybující se po obrazovce. 00:00:05.186 --> 00:00:06.748 Již víte, jak to udělat. 00:00:06.748 --> 00:00:08.311 Máme tu proměnnou x. 00:00:08.311 --> 00:00:10.196 Ta udává polohu míče. 00:00:10.196 --> 00:00:13.914 Proměnná „speed“, která říká, jak daleko se míč pohne. 00:00:13.914 --> 00:00:17.417 A známá smyčka, jenž překreslí pozadí pokaždé, 00:00:17.417 --> 00:00:20.379 když se nastaví barevná výplň a nakreslí elipsa v poloze x. 00:00:20.379 --> 00:00:26.133 To se stane, když k původní hodnotě "x" přičteme proměnnou "speed". 00:00:26.133 --> 00:00:31.504 Takže pokud zmenšíme hodnotu „speed“, vidíte, že se pohybuje pomaleji. 00:00:31.504 --> 00:00:35.639 Můžeme ji nastavit opačnou hodnotu, pak se pohybuje zpět. 00:00:35.639 --> 00:00:37.661 Když nastavíme nulu, míč stojí. 00:00:38.237 --> 00:00:43.213 Dokud není rychlost 0, tak míč se míč pohybuje po obrazovce. 00:00:43.213 --> 00:00:46.204 Můžete stisknout tlačítko restart pro návrat zpět. 00:00:46.204 --> 00:00:51.456 To je ale dost otravné, musíme to vždy znovu restartovat. 00:00:51.456 --> 00:00:52.456 Co to udělat takto? 00:00:52.456 --> 00:00:55.751 Když míč dosáhne pravého okraje obrazovky, 00:00:55.751 --> 00:00:58.255 tak místo toho, aby prošel obrazovkou pryč, 00:00:58.255 --> 00:01:00.495 co kdyby se míč otočil a vracel by se sám zpět? 00:01:00.495 --> 00:01:02.445 A již víme, jak otočit míč. 00:01:02.445 --> 00:01:06.178 Stačí nastavit "speed" na -5. 00:01:06.178 --> 00:01:09.925 Pokud nastavíme speed na zápornou hodnotu, tak se míč bude vracet. 00:01:09.928 --> 00:01:11.628 Ale je tady jeden problém. 00:01:11.638 --> 00:01:18.249 Chceme totiž změnit rychlost pouze tehdy, když se míč dotkne pravého okraje. 00:01:18.249 --> 00:01:27.638 Myslím, že to volá po použití "if" příkazu. 00:01:27.638 --> 00:01:31.326 Dosud jsme dávaly příkazy počítači bez jakýchkoli podmínek. 00:01:31.326 --> 00:01:33.730 If příkazy, tedy podmínky, jsou způsob, jak říct: 00:01:33.730 --> 00:01:35.914 "Hej kámo, spusť tento kód. 00:01:35.914 --> 00:01:38.217 A to se stane jen za určitých podmínek. 00:01:38.217 --> 00:01:42.542 "Takže změnit rychlost, pouze pokud se míč dotkl pravého okraje." 00:01:42.543 --> 00:01:44.638 Ukážeme si, jak to vypadá přímo v kódu. 00:01:44.638 --> 00:01:47.210 Vše potřebné je napsat if. 00:01:47.211 --> 00:01:50.960 Dále dvě kulaté a dvě složené závorky. 00:01:50.961 --> 00:01:54.334 Do kulatých závorek dáme podmínku. 00:01:54.335 --> 00:01:57.085 Do složených závorek dáme kód, který chceme spustit. 00:01:57.086 --> 00:02:00.083 Princip je takový: "Pokud je tato podmínka pravdivá, 00:02:00.083 --> 00:02:03.632 tak se spustí daný kód, jinak se tento kód nespustí. 00:02:03.632 --> 00:02:07.113 V našem případě je to stav, kdy míček dosáhne pravého okraje. 00:02:07.113 --> 00:02:10.064 Jak ale víme, zda míček dosáhl pravého okraje? 00:02:10.185 --> 00:02:14.553 Máme proměnnou "x" která říká, kde je míč. 00:02:14.565 --> 00:02:21.278 Dále víme, že okraj plátna je na x pozici 400. 00:02:21.278 --> 00:02:26.116 Pokud je „x“ větší než 400. 00:02:26.116 --> 00:02:30.178 Míč zmizí lehce za pravou hranu. 00:02:30.178 --> 00:02:32.522 Podívejme se, jak to funguje. 00:02:32.522 --> 00:02:36.603 Budeme jen měnit rychlost. 00:02:36.603 --> 00:02:39.229 Rychlosti nastavíme na - 5. 00:02:39.229 --> 00:02:41.606 Klikneme na restart a uvidíme, co se stane. 00:02:41.606 --> 00:02:45.295 Když míč dosáhne pravého okraje, tak se odrazí. 00:02:45.295 --> 00:02:47.301 A pak se dostane mimo obrazovku. 00:02:47.301 --> 00:02:50.105 To je v pořádku, protože to samé uděláme i na druhé straně. 00:02:50.105 --> 00:02:52.419 Zkontrolujeme, zda míč dosáhl levé strany. 00:02:52.419 --> 00:02:58.761 To se stane, pokud je x menší než nula. 00:02:58.761 --> 00:03:05.032 Rychlosti nastavíme tedy na hodnotu 5. 00:03:05.032 --> 00:03:11.708 Klikněme na restart a tentokrát to ... 00:03:14.499 --> 00:03:16.666 Funguje! 00:03:16.667 --> 00:03:20.369 Kontrolujeme, zda míč překročil přes okraje. 00:03:20.369 --> 00:03:23.458 Vypadá to, že jde trochu příliš za okraje. 00:03:23.458 --> 00:03:25.467 Vzpomeňme si, že tyto dva parametry řídí, 00:03:25.467 --> 00:03:28.622 kde je nakreslen střed elipsy. 00:03:28.622 --> 00:03:32.590 Takže právě tehdy, když střed dosáhne okraje, 00:03:32.590 --> 00:03:36.157 tak polovina elipsy už přesáhne přes okraj. 00:03:36.157 --> 00:03:39.413 Pokud to chceme opravit, tak prostě zastavíme elipsu o něco dříve. 00:03:39.413 --> 00:03:45.393 Pokud je naše hrana na 400, tak chceme zastavit naši elipsu, než se sem dostane. 00:03:45.393 --> 00:03:51.976 Z funkce můžeme vidět, že elipsa má šířku 50. 00:03:51.976 --> 00:03:57.218 To znamená, že od středu na okraj, to bude 25. 00:03:58.626 --> 00:04:03.215 Chceme tedy zastavit když střed dosáhne hodnoty 375. 00:04:03.535 --> 00:04:05.605 To je 400 minus 25. 00:04:05.605 --> 00:04:08.227 Místo abychom kontrolovali, zda je x větší než 400, 00:04:08.227 --> 00:04:10.969 budeme kontrolovat, zda x je větší než 375. 00:04:10.970 --> 00:04:16.764 Namísto kontroly jestli je x menší než 0, zkontrolujeme, zda x je menší než 25. 00:04:16.764 --> 00:04:18.649 A teď je to perfektní! 00:04:18.649 --> 00:04:20.534 Podívejte se, jak se míč odráží.