Proměnné

Proměnné jsou základním kamenem programování v kterémkoliv programovacím jazyce. Jejich význam je podobný tomu, který už nejspíš znáte z matematiky třeba ze vzorců pro geometrické výpočty nebo řešení rovnic. V této lekci využijeme práci s proměnnými k výpočtu a zobrazení doby jízdy a rychlosti autíčka z minulé lekce, viz .swf ukázka.

Proměnné využijeme v programech, kdy budeme potřebovat uchovat nějakou hodnotu (číslo, písmeno, slovo) nebo s nimi v průběhu programu pracovat (provádět operace). Laicky si lze představit, že program vymezí část paměti (přihrádku, škatulku), kterou označí jménem proměnné a do které bude její hodnoty ukládat. Některé proměnné využívá samotný programovací jazyk (například souřadnice objektu, vzpomeňte na proměnnou _root.auticko._x z minulé lekce), další proměnné si definuje (pojmenuje) programátor (v minulé lekci jsme použili _root.auticko.rychlost). Názvy proměnných mohou být prakticky libovolné, nesmí obsahovat některé speciální znaky. Zvláště při větším počtu proměnných jsou vhodné názvy, které vystihují jejich funkci.
V některých programovacích jazycích musí být každá proměnná předem definovaná (deklarovaná), kromě názvu musí být určený také její typ (co se do ní dá uložit), aby mohlo být v paměti vymezeno patřičné místo.
Pro uložení hodnoty do proměnné (přiřazení hodnoty) se v ActionScriptu používá znak =, například:
rychlost=0;
Do proměnné kromě konkrétní hodnoty (čísla, znaku, řetězce) můžeme ukládat také hodnotu jiné proměnné, například:
rychlost=a;
S proměnnými můžeme provádět různé operace, zatím nám postačí základní aritmetické (ale je jich podstatně více), například:
rychlost=a+2*b;
Velice často používanou operací je zvětšování proměnné o nějakou hodnotu, například, chceme-li proměnnou cas zvětšit o jedničku, použijeme příkaz:
cas=cas+1;
který se dá zapsat také zkráceně
cas += 1;
Vzpomeňte si na příkazy ze 13. lekce, které jsme využili ve skriptu pro řízení autíčka: rychlost += 2; this._rotation -= 10;


Chceme-li v ActionScriptu zobrazit hodnotu proměnné, potom můžeme použít dynamické textové pole, v jehož vlastnostech uvedeme název proměnné, kterou chceme zobrazit. Abychom mohli sledovat naši rychlost, vložíme do scény textové pole, s volbami podle obrázku (proměnná rychlost je použita v klipu auticko, proto je použitý název proměnné auticko.rychlost):

Pro závody je nejpodstatnější dosažený čas. Do skriptu pro klip auticko doplníme proměnnou cas, při načtení klipu do ní vložíme nulu:
onClipEvent (load) {
rychlost = 0; cas=0;
}

Do události onClipEvent (enterFrame) doplníme příkaz, kterým proměnnou cas zvětšíme o 1: cas=cas+1; (nebo jeho zkrácený zápis) a přidáme další textové pole, ve kterém budeme zobrazovat čas.
Posledním úkolem bude zastavit běžící čas, pokud jsme dorazili do cíle. Přidáme do klipu auticko ještě jednu proměnnou, třeba konec:
onClipEvent (load) {
rychlost = 0; cas=0; konec=0;
}

Na začátku do proměnné konec uložíme nulu a ve skriptu pro cílový "rošt" do této proměnné vložíme 1, pokud se srazí s autíčkem:
onClipEvent(enterFrame)
{
if(this.hitTest(_root.auticko)) // jestli se srazí s autickem
{_root.auticko.rychlost = 0; _root.auticko.konec=1;
}
}

Potom ale potřebujeme upravit skript auticka, aby se cas zvětšoval jen tehdy, pokud není autíčko v cíli (proměnná konec=0):
if (konec==0) {cas=cas+1;}

Všimněte si symbolu == , tentokrát do proměnné konec neukládáme žádnou hodnotu, ale porovnáváme ji s hodnotou 0 - jestliže je v proměnné konec nula, potom zvětši proměnnou cas o 1.


Úkoly (4 + 4 body):

Doplňte zobrazení rychlosti autíčka a měření času. (4 body)
Doplňte úvodní obrazovku se stručným návodem a tlačítkem pro spuštění hry (například jako ve formuli A. Volka z 9.A, šk. rok 2010/11) .(4 body)
Nepovinný úkol:
Ukončete hru podobně jako v 11. lekci (zobrazte výsledný čas a nabídku pro znovuspuštění nebo ukončení hry).(4 body)