Dneska si pořádně odpočineme a budeme si hrát!
Jednotka Crt nám umožňuje vyrobit různé textové a zvukové efekty.
Pro ty, kteří používají FreePascal: obsah této jednotky je zahrnut už
v jednotce System.
Pro Delphisty: všechny jednotky popsané v této a dalších lekcích můžete
vynechat, Delphi je nemá, zato má jiné, lepší.
Jednotka Crt měla tu nevýhodu, že nefungovala na počítačích s procesory rychlejšími jak 200MHz. Na Internetu je k dispozici řada opravných opatření. Stáhli-li jste tedy BP, nejspíše se s tímto problémem již nesetkáte. Jinak musíte najít opravnou jednotku (např. Crtp2), či patch, který umožní fungovat i již přeloženým souborům.
Souřadnice se u obrazovky počítají zleva doprava a seshora dolů.
ClrScr; - Procedura smaže obrazovku
GotoXY(X,Y:Byte); Přesune textový kurzor na zadané souřadnice
(obrazovka má 80 x 25 znaků)
WhereX:Byte x-ová souřadnice kurzoru
WhereY:Byte y-ová souřadnice kurzoru
Delay(ms:word); Počká ms milisekund
Sound(Hz); začne vydávat zvuk o frekvenci Hz (lze použít i k zahrání
jednoduchých skladeb : komorní A má 440Hz a tón o oktávu vyšší pak
frekvenci dvojnásobnou)
NoSound; Ukončí vydávání zvuku (jediný způsob, jak se zbavit pištění
Soundu, používá se nejčastěji ve spojení : Sound(FrekvenceDanéNoty),
Delay(DobaTrváníNoty); Nosound
ReadKey:char Přečte jeden znak z klávesnice. Používá se nejčastěji
v cyklech, kde se neustále dokola testuje, zda nebyla stisknuta některá klávesa
(nemusí totiž čekat na stisk Entru jako Readln)
KeyPressed : Boolean Funkce zjišťuje, stiskl-li uživatel něco (nějakou
klávesu, že tiskl jazyk za zuby nás vůbec, ale opravdu vůbec nezajímá)
Jednotka Crt nám umožňuje pracovat i s barvami. K tomu se musí barvy ovšem nějak definovat a abychom se nezbláznili ze změti čísel, zavedli se konstanty:
Název konstanty | Hodnota |
---|---|
Black | 0 |
Blue | 1 |
Green | 2 |
Cyan | 3 |
Red | 4 |
Magenta | 5 |
Brown | 6 |
LightGray | 7 |
DarkGray | 8 |
LightBlue | 9 |
LightGreen | 10 |
LightCyan | 11 |
LightRed | 12 |
LightMagenta | 13 |
Yellow | 14 |
White | 15 |
Blink | 128 |
Jak číslo 4, tak i Red tedy znamenají červenou barvu, ale kvůli přehlednosti
je lepší používat druhou možnost zápisu. Uveďme si nyní pár
"barevných" funkcí:
TextColor(Barva); Změní barvu textu na zadanou hodnotu
TextBackground(Barva); Změní barvu pozadí (samozřejmě, že ne vašeho).
U této procedury se používá pouze tmavých barev.
Uvedené procedury se nevztahují na již napsané znaky (ClrScr je výjimka)
To by bylo z Crt vše.
DCV: Projděte své dosavadní programy a pokuste se některé vylepšit
pomocí zde získaných zkušeností. (Vylepšení se asi budou týkat grafické
stránky, ale pokud využijete i ReadKey a KeyPressed, nebude to na škodu)