Niekonwencjonalne przejścia: część 1

 

autor: misieksamgame


  

   W TGF’ie mamy możliwość wstawienia przejść. Proste to rozwiązanie, jednak ma kilka wad. Podczas trwania efektu cała gra zostaje wstrzymana. Ponadto kolor obiektu, który zasłania nam level może być tylko jednolity, a i sterowanie prędkością jego ruchu jest mocno ograniczone. Dlaczego by nie zrobić własnego przejścia? Oczywiście w MMFie takie zabiegi są zbyteczne ze względu na tamtejsze lepsze przejścia.

 

   Odpalamy TGF. W edytorze poziomu wstawiamy obiekt aktywny przykrywający całe widziane pole (np. 640x480). Użyjemy teraz narzędzia do morfingu. Robimy animację od koloru czarnego do białego składającej się z 10-20 klatek. Wstawiamy obiekt i wchodzimy do okna Object Preferences. Klikamy na zakładkę Advanced i z Ink Effect wybieramy opcję And. Oto przed nami własnoręcznie zrobiony efekt przejścia zwany Fade od koloru czarnego .

 

   Jeśli chcemy ściemnić obraz wystarczy odwróć kolejność klatek animacji. Jeżeli chcemy zrobić przejście do/z koloru białego to wybieramy zamiast efektu And – Or. Co prawda podczas przejścia występują małe zniekształcenia barw, ale można też zrobić Fade innym sposobem.

 

W nowym levelu wstawiamy pusty czarny obiekt aktywny z jedną, czarną klatką animacji. Jego półprzezroczystość ustalamy na 90%. Dodajemy nowe zdarzenie:

 

Zdarzenia:

 

Every 0’’10

+Alterable value A of “Czarny” < 100

Create “Czarny” at 0,0;

"Czarny": Add 1 to Alterable value A; Spread value Value A “Czarny” in alterable value A

 

 

   Z tego wynika, że obiekt "Czarny" zostanie utworzony 100 razy. To w sam raz wystarczy do zaczernienia obrazu. Teraz zajmiemy się pojawianiem się levela z czarnej otchłani. Naturalnym jest, że nie będziemy wstawiać obiektu aktywnego w edytorze planszy 100 razy, ani też nie wstawimy 100 razy tego samego zdarzenia, zatem posłużymy się FastLoopem.

 

Zdarzenia:

 

Timer equals 00’’05

Start Loop # 0 for 20 loop(s)

 

FL: Loop trigger # 0

Create "Czarny" at 0,0

 

   W związku z tym, że powyższe dwa zdarzenia powodują olbrzymie obciążenie systemu, na słabszych maszynach, pierwsze zdarzenie zostało nieco opóźnione (nie wstawione na Start of Level). Służy to do zniwelowania efektu początkowej widoczności wszystkiego przez sekundę na początku ramki. Musimy również wstawić drugi, nieprzezroczysty, czarny obiekt aktywny. Do niego odwołuje się zdarzenie:

 

Zdarzenia:

 

Timer equals 01’’00

"Czarny2": Destroy

 

 

Niszczymy obiekt "Czarny2", gdy nie jest nam potrzebny, i rozpoczynamy niszczenie obiektów półprzezroczystych jeden po drugim:

 

Zdarzenia:

 

Timer is greater than 01’’00

+Every 00’’05

+Pick one of “Czarny”

"Czarny": Destroy

 

   

Gotowe. Efekt sprawuje się w miarę ładnie. Wadą przejścia opierającego się na wielu obiektach aktywnych jest jego duże obciążanie komputera i bardzo powolne działanie na starszych maszynach.

 

   Teraz zajmiemy się efektem przysłaniania. Zrobimy najście ruchem jednostajnie opóźnionym obrazka, który będzie przedstawiał logo gry. Wstawiamy obiekt aktywny z logiem. Wybieramy dla niego ruch piłki. Ustawiamy domyślny kierunek odpowiadający kierunkowi najścia. Obiekt ustawiamy poza planszą. Przejdźmy do zdarzeń:

 

Zdarzenia:

 

Always

"Logo": Set speed to Value A "Logo"

 

Start of Level

Set alterable value A to 50

 

Every 00’’05

Sub 1 to alterable value A

 

 

   Tym sposobem ustaliliśmy ruch jednostajnie opóźniony dla obiektu. Na pewno za pierwszym razem obiekt nie pokryje planszy w całości lub przeleci żądane miejsce. W takim przypadku należy pokombinować z początkową prędkością, częstotliwością odejmowania od wartości oraz początkowym położeniem obiektu. Powyższy przykład można również wykorzystać do najazdu pasów na planszę. Analogicznie postępujemy jeśli chcemy zrobić odsłonięcie przez obiekt. Prędkość będzie w tym przypadku dodawana.

 

   Za nami już dwa przejścia wykonane w niekonwencjonalny sposób. Mam nadzieję, że skorzystasz z artykułu. W następnej jego części postaram się zamieścić kolejne efekty. Będą to różne rodzaje kafelków.

 

 

 

by pepe9donkey