Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!
Zadejte Vaši e-mailovou adresu:
Kamarád fotí rád?
Přihlas ho k odběru fotomagazínu!
Zadejte e-mailovou adresu kamaráda:
Delphi
Simulace sněžení
delphi_snih
8. ledna 2001, 00.00 | Není venku sníh? A chcete mít sníh alespoň virtuálně? Praktická ukázka, jak si udělat malou sněhovou vánici v Delphi.
Jelikož je zima a někde, tedy na horách, určitě sněží, podíváme se dnes v našem článku právě na sněžení.
Princip je velice jednoduchý - na pozadí nakreslíme nějaký obrázek a přes něj vykreslujeme letící sněhové vločky. Existují v podstatě dva způsoby padání sněhových vloček.
- Buďto budou sněhové vločky padat na sebe, a na spodu obrazovky vytvářet "kopce" sněhu,
- nebo druhý způsob, který si dnes ukážeme, a to takový, že vločky na spodu obrazovky mizí.
Jak jste již asi z nadpisu poznali, budeme vykreslovat přes komponenty DirectX a proto si hned po vytvoření nového projektu dáme na formulář DXdraw, DXTimer a DXImageList. DXImageList jednak proto, že budeme na pozadí kreslit obrázek, a také proto, že tentokrát nebudeme jako vločky používat pixely, ale již rovnou nakreslené obrázky.
Tedy, nejprve seženeme nějaký ten hezký obrázek zasněžené krajiny a poté nakreslíme např. v malování 3 obrázky sněhové vločky. Zvolil jsem obrázky rozměrů 1x1, 2x2 a 3x3 pixely, které zvládne nakreslit snad každý.
A nyní k programu. Princip je jednoduchý. Vytvoříme proměnnou Kulicka typu TPoint, ve které bude uložena pozice sněhové vločky, dále KulickaSpeed, ve které bude uložena rychlost, o kolik pixelů vločka spadne dolů a KulickaSize, určující právě velikost vločky. Samozřejmě asi nebudeme chtít pouze jednu vločku, a proto vytvoříme všechny proměnné jako pole. Poté přidáme ještě konstantu MaxSnehu, která určuje, kolik bude najednou vloček a SnihCounter, který bude ukazovat na vločku, jejíž parametry máme zrovna měnit. Celé toto přidáme do proc. DXTimer.OnTimer, přičemž ještě zmenšíme Interval timeru a výsledek by mohl vypadat nějak takto:
|
Pokud si následující text pečlivě přečtete, zjistíte, že jsem přidal ještě dva řádky, které zajistí, aby se někdy vločka pohla trochu vlevo či vpravo a vypadalo to, jako že slabě fouká vítr. Pokud se Vám zdá, že se vločky málo "třesou" a letí přímo k zemi, stačí změnit hodnoty. Na optimální nastavení již určitě přijdete sami.
A to je asi vše. Ještě podotknu, že je dobré nedávat moc světlé pozadí, jelikož na něm bílé vločky velice snadlo zaniknou a nemá to ten správný efekt.
Download
ZDE si můžete stáhnout program a zdrojáky (706 kB)
-
25. listopadu 2012
-
30. srpna 2002
-
10. října 2002
-
4. listopadu 2002
-
12. září 2002
-
25. listopadu 2012
-
28. července 1998
-
31. července 1998
-
28. srpna 1998
-
6. prosince 2000
-
27. prosince 2007
-
4. května 2007