A je tu další animace.
Tentokrát tu máme míč
pohybující se po obrazovce.
Již víte, jak to udělat.
Máme tu proměnnou x.
Ta udává polohu míče.
Proměnná „speed“, která říká,
jak daleko se míč pohne.
A známá smyčka, jenž
překreslí pozadí pokaždé,
když se nastaví barevná výplň
a nakreslí elipsa v poloze x.
To se stane, když k původní hodnotě "x"
přičteme proměnnou "speed".
Takže pokud zmenšíme hodnotu „speed“,
vidíte, že se pohybuje pomaleji.
Můžeme ji nastavit opačnou hodnotu,
pak se pohybuje zpět.
Když nastavíme nulu,
míč stojí.
Dokud není rychlost 0,
tak míč se míč pohybuje po obrazovce.
Můžete stisknout
tlačítko restart pro návrat zpět.
To je ale dost otravné,
musíme to vždy znovu restartovat.
Co to udělat takto?
Když míč dosáhne
pravého okraje obrazovky,
tak místo toho,
aby prošel obrazovkou pryč,
co kdyby se míč
otočil a vracel by se sám zpět?
A již víme, jak otočit míč.
Stačí nastavit "speed" na -5.
Pokud nastavíme speed na
zápornou hodnotu, tak se míč bude vracet.
Ale je tady jeden problém.
Chceme totiž změnit rychlost pouze tehdy,
když se míč dotkne pravého okraje.
Myslím, že to volá po
použití "if" příkazu.
Dosud jsme dávaly
příkazy počítači bez jakýchkoli podmínek.
If příkazy, tedy podmínky,
jsou způsob, jak říct:
"Hej kámo, spusť tento kód.
A to se stane jen za
určitých podmínek.
"Takže změnit rychlost, pouze
pokud se míč dotkl pravého okraje."
Ukážeme si, jak to
vypadá přímo v kódu.
Vše potřebné je napsat if.
Dále dvě kulaté
a dvě složené závorky.
Do kulatých závorek
dáme podmínku.
Do složených závorek dáme kód,
který chceme spustit.
Princip je takový:
"Pokud je tato podmínka pravdivá,
tak se spustí daný kód,
jinak se tento kód nespustí.
V našem případě je to stav,
kdy míček dosáhne pravého okraje.
Jak ale víme, zda míček
dosáhl pravého okraje?
Máme proměnnou "x"
která říká, kde je míč.
Dále víme, že okraj plátna
je na x pozici 400.
Pokud je „x“ větší než 400.
Míč zmizí lehce za pravou hranu.
Podívejme se, jak to funguje.
Budeme jen měnit rychlost.
Rychlosti nastavíme na - 5.
Klikneme na restart a
uvidíme, co se stane.
Když míč dosáhne
pravého okraje, tak se odrazí.
A pak se dostane
mimo obrazovku.
To je v pořádku, protože to samé
uděláme i na druhé straně.
Zkontrolujeme,
zda míč dosáhl levé strany.
To se stane,
pokud je x menší než nula.
Rychlosti nastavíme
tedy na hodnotu 5.
Klikněme na restart a tentokrát to ...
Funguje!
Kontrolujeme,
zda míč překročil přes okraje.
Vypadá to, že jde
trochu příliš za okraje.
Vzpomeňme si,
že tyto dva parametry řídí,
kde je nakreslen střed elipsy.
Takže právě tehdy, když
střed dosáhne okraje,
tak polovina elipsy už přesáhne
přes okraj.
Pokud to chceme opravit, tak
prostě zastavíme elipsu o něco dříve.
Pokud je naše hrana na 400, tak chceme
zastavit naši elipsu, než se sem dostane.
Z funkce můžeme vidět,
že elipsa má šířku 50.
To znamená, že od středu
na okraj, to bude 25.
Chceme tedy zastavit
když střed dosáhne hodnoty 375.
To je 400 minus 25.
Místo abychom kontrolovali,
zda je x větší než 400,
budeme kontrolovat, zda
x je větší než 375.
Namísto kontroly jestli je x menší než 0,
zkontrolujeme, zda x je menší než 25.
A teď je to perfektní!
Podívejte se, jak se míč odráží.