5. diel - Small Basic - Grafická okna
Minule sme si popísali triedy TextWindow, Network a Math. Dnes sa posunieme v seriáli ďalej a začneme tvoriť oveľa zaujímavejšie aplikácie. Uvedieme si totiž prácu s grafickými oknami.
Úvod do grafických okien
Tak teda začneme. S grafickými oknami sa dá vo Small Basicu dosť slušne
hrať a toto vás bude aj baviť . Vždy je dobré si nastaviť farbu pozadia, to urobíte takto:
GraphicsWindow.BackgroundColor = "Black"
A vaše okno by malo vyzerať takto:
![SmallBasic](images/15762/small_basic/small_basic_graficka_okna_-_okno_1.png)
Máte teda prvý grafické okno! Možno by to chcelo vypísať potrebné text. To nie je žiadny
problém, ale je potrebné, aby sme nastavili farbu na bielu, defaultná farba
je bledo modrá.
GraphicsWindow.BrushColor = "White" GraphicsWindow.DrawText(0, 0, "Ahoj!")
Na prvom riadku sa zmení farba štetca na bielu, tzn. text a výplne tvarov a na druhom je výpis textu na 0, 0. To sú súradnice xay (ľavý horný roh okna). Asi vás zaujíma, ako zmeniť farbu obrysu u tvarov. Môžeme si to vyskúšať na elipse, stačí do kódu pridať:
GraphicsWindow.PenColor = "White" GraphicsWindow.DrawEllipse(32, 32, 128, 128)
A aj s tým textom by to malo vyzerať nejako takto:
![SmallBasic](images/15762/small_basic/small_basic_graficka_okna_-_okno_2.png)
Funguje a je to pekné, nie?
Ale asi sa vám nepáči nadpis okna. To možno zmeniť jednoducho ako všetko ostatné:
GraphicsWindow.Title = "Nadpis"
Tak máme nadpis. Teraz ešte nastavenia šírky a výšky okna:
GraphicsWindow.Width = 800 GraphicsWindow.Height = 600
To nastaví šírku a výšku na 800x600. To je základná práca s oknami as
tými tvary sa dá slušne hrať. Teraz si naprogramujeme vlastné loading bar
Loading bar
Defaultný farba pozadia je biela, tak tu necháme. Štetec (výplň) nastavíme na tmavo modrú a obrys na čiernu. Veľkosť okna na 240x32, aký si dáte nadpis okna nechám na vás. Kód by mohol vyzerať takto:
GraphicsWindow.Title = "Můj Loading Bar" GraphicsWindow.Width = 240 GraphicsWindow.Height = 32 GraphicsWindow.PenColor = "Black" GraphicsWindow.BrushColor = "DarkBlue"
Teraz k samotnému postupnému vykresľovanie musíme vytvoriť cyklus od
jednej do 120. Bude sa vykresľovať obrys obdĺžnika na súradniciach 0, 0.
Vaše premenná v cykle * 2, 32, a plný obdĺžnik na rovnakých súradniciach.
Teraz už chápete, prečo je okno 240x32, čo ? Ešte musíme vždy spomaliť
kroky cyklu, aby sa obdĺžnik nevykreslil hneď. Môžete nastaviť napríklad
na 30 milisekúnd, to by cyklus prebehol za 3600 milisekúnd. Tak, kód by mohol
vyzerať takto:
For a = 1 To 120 GraphicsWindow.DrawRectangle(0, 0, a * 2, 32) GraphicsWindow.FillRectangle(0, 0, a * 2, 32) Program.Delay(30) EndFor
obrázok:
![SmallBasic](images/15762/small_basic/small_basic_graficka_okna_-_okno_3.png)
Pekné, nie? A ešte si to
môžeme trochu vylepšiť, zašpiníte kód na nastavenie výplne na tmavo
modrú. Dáme do cyklu nastavenia farby výplne na náhodne zvolenú, stačí
len pridať:
GraphicsWindow.BrushColor = GraphicsWindow.GetRandomColor()
Vidíte ďalšie operácie z triedy GraphicsWindow, pri každom kroku zvolíme náhodnú farbu výplne.
Obdĺžniky
Skúsme si ďalší príklad. Úplne jednoduchý kód, vykreslí štvorcové, farebné pozadie na okno 600x400px.
GraphicsWindow.Width = 600 GraphicsWindow.Height = 400 For y = 0 To GraphicsWindow.Height / 20 For x = 0 To GraphicsWindow.Width / 20 GraphicsWindow.BrushColor = GraphicsWindow.GetRandomColor() GraphicsWindow.FillRectangle(x * 20, y * 20, 20, 20) EndFor EndFor
výsledok:
![farebné pozadia - SmallBasic](images/15762/../6801/2014-07-07_225442.png)
Reakcie na klávesy
Nakoniec si ukážme, ako možno reagovať na stlačenie nejaké klávesy. Malú ochutnávku sme mali už v predchádzajúcich dieloch. Kód nižšie zaregistruje procedúru key_down na udalosť okná KeyDown, ktorá sa zavolá vo chvíli, keď používateľ stlačí kláves. Podmienkou zareagujeme na to, ktorá klávesa bola stlačení. Ak to bolo Escape, ukončíme program.
GraphicsWindow.KeyDown = key_down Sub key_down last_key_down = GraphicsWindow.LastKey If last_key_down = "Escape" Then 'ESC Program.End() EndIf EndSub