efekt śniegu

0

Zna ktoś może sposób jak w delphi utworzyć efekt śniegu na ekranie podobny jak jest stosowany na stronach www? Szukałem źródeł ale nic naten temat nie znalazłem...

0

Rysowanie płatków czy przemieszczanie obiektów TImage? W każdym razie sam ruch możesz zrobić tak:

Masz Timer powiedzmy na 100ms. W każdym takcie tworzysz powiedzmy jeden płatek na górze ekranu/formy/linii padania - tworzenie polegać może na dynamicznym utworzeniu TPoint i dodaniu go do TList. Co takt dla każdego płatka z TList wyliczasz nowe położenie. Jeśli płatek wyjdzie za ekran/formę/linię ziemi jest usuwany z TList.

Wyliczenie nowej pozycji może być zrobione następująco:

  • Y ciągle rośnie (liniowe przesuwanie w dół)
  • X zmienia się na przykład w sposób: X:=10*sin(Y)+1 (pewnego rodzaju falowanie; możesz zakręcić bardziej ten wzorek o inne wielokrotności Y lub uzależnić od numeru płątka czy czegoś takiego)
0

Przez DirectDraw dało się rysować po całym ekranie (nie tylko na formularzu).

Zresztą bez DirectDraw też sobie można poradzić.
Pobierasz uchwyt pulpitu, i rysujesz na nim jak na zwyklym Canvasie.

Form1.Canvas.Handle := GetDC(0);

i teraz zamiast na formie będzie Ci rysowalo po pulpicie.
Mam nadzieje, że nie pomyliłem, dawno Delphi nie odpalalem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1