-
Jsme zpátky u Winstona.
-
Jeho polohu určujeme
pomocí proměnných x a y.
-
Můžeme ho tedy posouvat
do stran, nahoru i dolů!
-
Pěkné.
-
Pojďme teď vrátit hodnoty
proměnných na 200 a 200.
-
Ukážeme si, jak tento
program vlastně funguje.
-
Na začátku máme
proměnnou eyeSize.
-
Ta se používá k
ovládání velikosti očí.
-
Ty mají 40 pixelů
na šířku i na výšku.
-
Pak tady máme
proměnné x a y.
-
Ty určují střed
Winstonovy tváře.
-
Jak můžete vidět,
-
používáme je ve vlastnostech elipsy,
která vykresluje velký žlutý kruh.
-
Pro vykreslení očí opět
používáme proměnné x a y.
-
Tady vidíme, že oči jsou umístěny
v návaznosti na střed tváře.
-
Toto je umístěno 50
pixelů nalevo od středu.
-
A toto je umístěno 100 pixelů
napravo od středu.
-
Díky tomu můžeme pohybovat
Winstona nahoru a dolů.
-
Nyní bych chtěla ovládat
více vlastností Winstonovy tváře.
-
A to pomocí proměnných.
-
Čili chci zjistit, pro co další
v programu můžu proměnnou použít.
-
Abych to zjistila,
-
projedu každý řádek kódu a zkusím
najít tzv. napevno zakódována čísla.
-
To jsou čísla, která
nejsou vyjádřená pomocí proměnné.
-
Začneme tady
u první elipsy.
-
Pro šířku a výšku tu
máme hodnoty 300 a 300.
-
Jsou to čísla.
-
Pojďme z nich
udělat proměnnou.
-
Nazveme ji faceSize,
tedy velikost obličeje.
-
Dáme jí hodnotu 300.
-
Nyní napíšeme
faceSize a faceSize.
-
Barvy přeskočíme.
-
Všechny vlastnosti této elipsy jsou nyní
proměnné nebo závislé na proměnných.
-
Zatím je tak ponechám.
-
První dvě vlastnosti pusy jsou
závislé na proměnných x a y.
-
Ale tyto hodnoty
jsou zase čísla.
-
150 a 150.
-
Zavedeme si tedy proměnnou mouthSize,
tedy velikost úst.
-
A bude se rovnat 150.
-
Obě čísla nahradíme
mouthSize.
-
Teď máme velikosti tvarů
uloženy v proměnných hned na začátku.
-
To znamená, že můžeme
velice jednoduše upravovat velikost.
-
Takhle.
-
Winston má hlad!
-
Winston má hlad, proto sní hodně
koblih a teď je hrozně velký!
-
Na tomto programu
se mi ale něco nelíbí.
-
Když hodnotu faceSize
opravdu hodně zmenším,
-
začne to vypadat vtipně.
-
Protože oči a ústa
vystupují z tváře.
-
A v určitém bodě už ani
nevypadají jako součást tváře.
-
Už se ani nejedná o tvář.
-
Chtěla bych, aby při změně
faceSize došlo i ke změně úst a očí.
-
V případě, že faceSize
zmenším o polovinu,
-
chci mít ústa taky
o polovinu menší.
-
To znamená,
-
že chci vypočítat mouthSize a eyeSize
jako zlomky faceSize.
-
Vrátíme původní
hodnoty proměnných.
-
Hned vám ukážu,
co mám na mysli.
-
Začneme s mouthSize.
-
Momentálně je
hodnota faceSize 300.
-
A hodnota mouthSize je 150.
-
Budeme-li uvažovat o nich
ve vztahu k sobě,
-
uvidíme, že faceSize je
dvakrát větší než mouthSize.
-
Nebo že mouthSize je
o polovinu menší než faceSize.
-
Náš kód můžeme
přepsat takhle:
-
1/2 krát faceSize.
-
Čili tento řádek kódu říká,
-
že vezmeme hodnotu faceSize,
vynásobíme ji 1/2 a uložíme jako mouthSize.
-
Pokud tedy změníme faceSize, mouthSize
se automaticky vypočítá jako její půlka.
-
Skvělé, přesně to chceme!
-
Teď eyeSize.
-
Takže faceSize je 300
a eyeSize je 40.
-
Potřebujeme, aby eyeSize bylo
40/300 hodnoty z faceSize.
-
A to je to samé jako 4/30,
což zjednodušíme na 2/15.
-
Takže napíšu
2/15 krát faceSize.
-
Pokud jste mimochodem ještě se zlomky
nepracovali a jsou pro vás těžké,
-
můžete si je procvičit
zde na Khan Academy.
-
A vrátíte se, až se
budete cítit připraveni.
-
Najdete je zde.
-
Zkusme znovu změnit
velikost tváře.
-
Podívejte se na to, ústa a oči
mění velikost úměrně k tváři.
-
Asi jste si ale všimli,
že něco není v pořádku.
-
Oči a ústa pořád
vystupují z tváře.
-
A to přestože jsou jejich
velikosti už přijatelnější.
-
Je to kvůli tomu,
-
že v naší elipse máme pořád
napevno zakódována čísla.
-
Jsou to čísla, která by měla
být zlomkem proměnných.
-
Pojďme to prozkoumat.
-
Poloha x elipsy vykreslující oko
je definována jako x minus 50.
-
To znamená, že je
vždy x minus 50.
-
A to i v případě, že uděláme
faceSize menší než 50 pixelů.
-
To nedává smysl,
-
protože naše levé oko pak
už ani nebude na tváři.
-
Správně by to
tedy mělo být:
-
x minus určitý zlomek
velikosti naší tváře.
-
Zlomek zjistíme
opět stejným způsobem.
-
Porovnáme hodnotu 50
ve vztahu k původní hodnotě 300.
-
Čili 50/300, 5/30, 1/6.
-
Takže napíšeme:
1/6 krát faceSize.
-
Zde máme taky 50.
-
Uděláme tedy
to samé.
-
Bude to ten samý výraz.
-
Zde máme 100/300.
-
To bude:
1/3 krát faceSize.
-
Tady je 60.
-
To bude:
1/5 krát faceSize.
-
A tady máme
dalších 50.
-
To je opět jedna šestina.
-
A 40, to už
máme tady nahoře.
-
2/15 krát faceSize.
-
Pojďme to zkusit znovu.
-
Podívejte na to!
-
To je hezké.
-
Pojďme si to
celé zopakovat.
-
Vytvořili jsme tuto proměnnou,
která obsahuje velikost obličeje.
-
Ta obsahuje pouze číslo.
-
Poté zde máme proměnné
mouthSize a eyeSize.
-
Definujeme je jako
zlomky proměnné faceSize.
-
Tím zajistíme, že se jejich hodnoty
mění úměrně k této hodnotě.
-
Následně jsou všechny poměry
vypočteny ve vztahu k faceSize.
-
Tím zajišťujeme, že se poloha uvnitř
tváře mění úměrně ke změně faceSize.
-
Tak a nyní, když už
umíme vytvářet proměnné,
-
které jsou závislé na
hodnotách jiných proměnných,
-
můžeme toho s našimi programy
dělat mnohem víc.
-
Pojďme to oslavit a
udělat Winstona opravdu velkého!