Własne przejścia w TGF

Klikipedia - klikowa encyklopedia
Wersja z dnia 16:35, 30 paź 2007 autorstwa RomanX (dyskusja | edycje)
(różn.) ‹Starsza wersja | zobacz obecną wersję (różn.) | Nowsza wersja› (różn.)
Skocz do: nawigacji, wyszukiwarki
Slimaczek.jpg
Pierwotna wersja tego artykułu pochodzi z 5. numeru Ślimaczka (zobacz oryginalny artykuł).


Autor.jpg
Autorem tego artykułu jest
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.

Efekt zaciemniania

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%.

Przyjmijmy, że ActiveA.gif to nasz obiekt z animacją przejścia. Dodajemy nowe zdarzenie:

N Zdarzenia
1
+ EZ-timer.png Every 010
+ ActiveA.gif Alterable value A < 100
ActiveA.gif create at (0,0)
ActiveA.gif Add 1 to Alterable value A
ActiveA.gif Spread value Value A 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.

2
+ EZ-timer.png Equals 00'25
EZ-special.png Start Loop # 0 for 20 loop(s)
3
+ EZ-timer.png Loop trigger #0
ActiveA.gif create 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.

Oznaczmy go jako ActiveB.gif. Do niego odwołuje się zdarzenie:

4
+ EZ-timer.png Equals 01'00
ActiveB.gif destroy

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

5
+ EZ-timer.png greater than 01'00
+ EZ-timer.png every 00'05
• Pick one of ActiveA.gif
ActiveA.gif 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.

Efekt przysłaniania

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ń:

Przyjmijmy, że ActiveC.gif to obiekt logo.

Efekt przysłaniania
N Zdarzenia
1
+ EZ-special.png Always
ActiveC.gif set speed to alterable value A
2
+ EZ-frames.png Start of level
ActiveC.gif Set alterable value A to 50
3
+ EZ-timer.png Every 00'05
ActiveC.gif Sub 1 from 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.

Zakończenie

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.