PROGRAMOWANIE
WEBMASTER:
 Artyku造
 Kursy
 Skrypty
PHP:
 Artyku造
 Kursy
 Skrypty
VISUAL C/C++:
 Artyku造
 Kursy
 Kody 廝鏚這we
C++ BUILDER:
 Artyku造
 Kursy
 Komponenty
 Kody 廝鏚這we
 FAQ
DELPHI:
 Artyku造
 Kursy
 Komponenty
 Kody 廝鏚這we
 FAQ
JAVA:
 Artyku造
 Kursy
 Aplety
ASP:
 Artyku造
 Kursy
 Skrypty
VISUAL BASIC:
 Artyku造
 Kursy
 Kody 廝鏚這we
PASCAL:
 Artyku造
 Kursy
 Kody 廝鏚這we
ASSEMBLER:
 Artyku造
 Kursy
 Kody 廝鏚這we
O NAS [...]
 Ekipa portalu
 Reklama
REKLAMA

Pascal » Artyku造
Efekt padaj帷ego 郾iegu
Zima, za oknem pada 郾ieg. Nieraz zapewne czytelnicy widzieli w r騜nych demkach, czy innych programach efekt padaj帷ego 郾iegu zatrzymuj帷ego si� na elementach obrazka. Kiedy� nie chcia這 mi si� nic po篡tecznego stworzy�, i postanowi貫m napisa� co� w tym stylu.

Opisz� pokr鏒ce spos鏏 post瘼owania przy tworzeniu wirtualnego 郾iegu:

Najpierw losujemy sobie pozycje x i y na ekranie pixelk闚, a tak瞠 ich pr璠ko軼i. Operujemy na liczbach rzeczywistych (lub jak kto woli z przecinkiem), aby ruch pixelka by� p造nny. Nale篡 r闚nie� zadba�, aby pixel nie przeskoczy� o 2 pola w d馧 (tzn. aby pr璠ko嗆 nie by豉 wi瘯sza od 0.9) bo wtedy dosz造by nam dodatkowe warunki czego raczej nie po膨damy w naszym programie. Mogliby鄉y losowa� punkty tylko w X, a Y zawsze ustawi� na 0. Spowodowa這by to jednak nieestetyczny start i mog這by doj嗆 do zapchania si� w g鏎nej cz窷ci ekranu przy ilo軼i punkt闚 ok. 1000. Wi璚 musimy losowa� na ca造m ekranie, ale uwaga nie mo瞠my postawi� pixelka na kolorze, kt鏎y b璠zie je zatrzymywa� (np, gdy kolorem kt鏎y powoduje zatrzymanie pixelka jest kolor 15, to nie mo瞠my wylosowa� wsp馧rz璠nych, kt鏎e wypadaj� na napisie w kolorze 15, a to dlatego 瞠 pixel startuj帷 pozostawi豚y po sobie dziurk�, a w rezultacie zamazanie napisu), w tym celu przy losowaniu sprawdzamy sobie kolor.

Mamy ju� przygotowane tablice, mo瞠my zacz望 ruch punkt闚. W p皻li dla wszystkich pixelk闚 po kolei sprawdzamy najpierw czy mo瞠my poruszy� si� jeszcze w d馧, czyli czy punkt pod nami jest w kolorze innym ni� kolor zatrzymuj帷y. Je瞠li mo瞠my si� poruszy� to kasujemy pixel na starej pozycji i dodajemy szybko嗆 do aktualnej wsp馧rz璠nej Y. Po czym sprawdzamy czy nie wyskoczyli鄉y poza ekran, je瞠li tak to losujemy now� warto嗆 X punktu i do Y wpisujemy 0 (czyli zaczynamy od g鏎y) i na zako鎍zenie rysujemy pixel w nowym miejscu kolorem zatrzymuj帷ym.

Wr鵵my teraz do pierwszego rozga喚zienia. Czyli do momentu, w kt鏎ym sprawdzali鄉y czy pod nami jest kolor zatrzymuj帷y. Je逮li jest, to nale篡 sprawdzi� czy nasz punkt mo瞠 obsun望 si� w prawo lub w lewo (po stoku). Sprawdzamy czy mo瞠my si� obsun望 w prawo, a potem w lewo. Je瞠li nie mo瞠my si� obni篡� w 瘸dn� ze stron, to spoczywamy spokojnie na miejscu, w kt鏎ym obecnie si� znajdujemy i losujemy now� szybko嗆 oraz X i zaczynamy od nowa. Je瞠li mo瞠my si� obsun望 w lewo lub w prawo to kasujemy punkt na starej pozycji zmieniamy X (w zale積o軼i od tego w kt鏎� stron� si� obsuwamy) i dodajemy zn闚 szybko嗆 do Y, sprawdzamy czy nie wyl康owali鄉y poza ekranem i stawiamy punkt w nowym miejscu. I cykl si� zamyka w k馧eczko. To mniej wi璚ej ca豉 filozofia 郾iegu. Teraz jak to wygl康a w praktyce (a raczej w Turbo Pascalu):

Program mo積a na wiele sposob闚 ulepszy�. Przyk豉dowo mo積a jako t這 wstawi� jaki� krajobraz (np. plik graficzny GIF) na kt鏎ego tle b璠zie pada� 郾ieg. Innym pomys貫m jest tzw. lepko嗆, czyli przyczepno嗆 do powierzchni podczas lotu), czy budowanie si� skarp i p騧niejsze ich obrywanie si�, itd. ...

Kod 廝鏚這wy do artyku逝:
Efekt 郾iegu (1,49 KB)

Dariusz Pindraszak
NEWSLETTER
Chcesz by� zawsze na bie膨co?
Zapisz si�!
WP.PL
LITERATURA
INNE [?]
Katalog WWW
Sponsor
On-Line: 4
stat4u
Wszystkie prawa zastrze穎ne © 2001-2002 Programik.com