Przesuwanie ekranu za bohaterem w TGF/MMF
morty
Artykuł ten pokaże, jak zrobić w programie TGF lub MMF przewijanie ekranu za bohaterem (tzw. scrolling). Przed przystąpieniem do właściwych zdarzeń musisz stworzyć w edytorze etapu planszę o wymiarach, przekraczających rozmiar okna. Wstaw bohatera, oraz parę platform lub obiektów (ew. tło), by można było zaobserwować efekt przewijania ekranu.
Prosty sposób osiągnięcia celu
Najprostszym wyjściem jest stworzenie następującego zdarzenia, przy założeniu, że
to obiekt, do którego ma być wycentrowany ekran:
| N | Zdarzenia |
| 1 |
Metoda ta ma dość poważną wadę - ekran nie przesuwa się płynnie, lecz sztywno co do miejsca położenia bohatera. Aby uzyskać płynny efekt można zastosować ulepszoną metodą z następnej sekcji (w dalszym ciągu
to obiekt, za którym ma podążać ekran).
Płynny scrolling
| N | Zdarzenia |
| 1 |
| 2 |
Zdarzenie numer 1 zawsze będzie ustalało wartość A obiektu
na jego pozycję X oraz wartość B obiektu
na jego pozycję Y. Wartości A i B będą zatem przechowywać pozycje X i Y obiektu, natomiast ekran centrować będziemy do pozycji C i D obiektu
.
Wartości C i D ustawimy jednokrotnie (zdarznie 2) na odpowiednio wartości A i B, tak, by na samym początku etap wycentrował się od razu do obiektu
.
Dalszym ich ustalaniem zajmiemy się w kolejnych zdarzeniach:
| 3 |
| 4 |
| 5 |
| 6 |
Zdarzenia 3-6 odpowiadają za płynne zmiany wartości C i D, które powodują ich płynne przejście do wartości A i B. Jeśli zmieni się pozycja obiektu
, to zgodnie ze zdarzeniem 1 wartości A i B przyjmą wartości pozycji X i Y. W tym momencie, wartości C i D pozostały niezmienione, a zatem na mocy zdarzeń 3,4,5,6 będą się zmniejszać/zwiększać tak długo, aż uzyskają wartość wartości A i B.
Wystarczy teraz wycentrować ekran do wartości C i D:
Rozbudowa
Doświadczeni klikowcy zauważą, że zdarzenie 2 jest w powyższym przykładzie niezbyt optymalne - można by się obejść i bez tego, zamieniając odpowiednie wartości. Celowo użyłem jednak takiego sposobu, ponieważ znacznie ułatwia on rozbudowę zdarzeń.
Na przykład, zróbmy tak, by bohater zwrócony w lewo miał większy zakres patrzenia w lewo i vice versa. Wystarczy podmienić zdarzenie 1 na poniższe dwa:
| 1a |
| 2a |
Teraz ekran będzie centrowany tak, by była większa widoczność po stronie, w którą bohater jest zwrócony.
Dodatkowo, przy zmianie kierunku ekran płynnie przejdzie w nową pozycję
Analogicznie można stworzyć zdarzenia, które będą centrowały ekran w zależności od tego czy bohater spada, czy np. patrzy się w górę.