Będzie to najprostszy i zarazem najkrótszy temat związany z OMEGĄ. Na poniższym rysunku jest pokazany bardzo prosty efekt przejścia jednego kafla w drugi

Można zauważyć, że krawędzie kafli kostki brukowej rozmywają się na granicy z trawą. Jest to efekt bardzo prosty do uzyskania, jeżeli tylko podmieni się standardowa metodę rysowania TSprite …Kod programu zawiera dwie warstwy, drzewa jako warstwa trzecia są losowane. Kostka brukowa rysowana jest w warstwie drugiej, trawa w warstwie pierwszej. Oczywiście podejście można zmienić. Rysując wszystko w warstwie pierwszej a jedynie na granicach tereny zastosować podwójne rysowanie…

Jak uzyskać taki efekt?

Bardzo prosto

Należy skorzystać z tej metody rysowania Draw4Col i pobawić się kanałami ALPHA, czyli przeźroczystością narożników kafla. Kod procedury wykonującej to zadanie przedstawiam poniżej

Jest to ta sama metoda- procedura rysująca, która szerzej opisałem w „Górach i Dolinach”. Ten artykuł przedstawia inne jej zastosowanie. O płynnym przenikaniu kafli decydują wartości zapisane w zmiennych
AlphaA,AlphaB,…

Jak zmienić te wartości?

Proszę zerknąć na poniższy rysunek

Kafel (4,3) sąsiaduje w narożniku
A z trzema kaflami zielonymi- powiedzmy trawa
B z dwoma kaflami zielonymi i jednym niebieskim- powiedzmy woda
C z trzema kaflami niebieskimi
D z jednym niebieskim i dwoma zielonymi

Przyjmując teraz zasadę, że za każde sąsiedztwo rogu kafla (4,3)- woda z rogiem kafla tego samego typu zwiększamy stopień przezroczystości z wartości ZERO do jakiejś tam przyjętej w naszym modelu. Ja zwiększałem współczynnik Alpha o wartości 255 za każde sąsiedztwo a potem podzieliłem przez 3.
Poniżej odpowiedni fragment kodu

I to cała tajemnica tego efektu, resztę czytelniku znajdziesz w załączonym kodzie. Rysowanie odbywa się przez klikanie lewym klawiszem myszki prawym chyba też:)

Jak to dobrze, że w Delphi i Omedze takie rzeczy robi się bardzo prosto…Ciekawe jak by to było w C?

Pozdrawiam oksal

Zbylitowska Góra 2 08 2007

Autor: oksal

Załączniki