Zarejestruj Zapomniałeś hasła?
Kamera - płynne przejścia.
Dodany 5 października 2009, 16:53 Odsłon 1104
Edytory Ocena
 (12 głosy)
Kategoria Silnik Poziom (Dla n0... początkujących)
.WSTĘP.

Cześć!
Czy zastanawiałeś się kiedyś jak wyklikać prosty silniczek, dzięki któremu uatrakcyjnimy centrowanie postaci w ekranie naszej gry? Drogi klikowcu - porzuć wszelkie myśli i rozkminy, bo oto wchodzę na scenę z ergonomicznym rozwiązaniem, które Ty - początkujący klikowcu - możesz wykorzystać w swej produkcji!

Częsty błąd
Podstawowym błędem początkujących klikowców jest używanie centrowania 'sztywnego', czyli:

'Sztywne' centrowanie
1
• Zawsze
Centruj ekran względem "postać" 0,0


Nie jest to takie złe, pod warunkiem, że w grze używamy rozdzielczości mniejszej lub równej :640x480: (chociaż i tutaj również występuje ryzyko spowolnienia rozgrywki).
Dodatkowo, sposób ten jest prosty, banalny, mało efektywny i efektowny. Poniżej przedstawiam o wiele ciekawsze i atrakcyjniejsze rozwiązanie:

A więc do roboty!
Najpierw ustalmy wielkość naszego poziomu. Ustawmy więc ją na np. :960x600:. Wielkość okna zaś, ustawiamy na :320x200:.
Skupmy się teraz na edytorze etapu. Musimy tam utworzyć kilka niezbędnych obiektów:

- obiekt aktywny 'postać' (nadajemy mu ruch 8-kierunkowy),
- obiekt aktywny 'kamera' (np. kwadrat 15x15),
- licznik typu ukryty (hidden) o nazwie 'kam-x',
- licznik typu ukryty (hidden) o nazwie 'kam-y',

Teraz, gdy mamy już wszystkie potrzebne nam obiekty, możemy przejść do edytora zdarzeń.
Pierwsze nasze zdarzenie powinno wyglądać następująco:

Płynne przejścia
1
• Zawsze
Ustaw wartość zmienną 'A' obiektu 'postać' na X( "postać" )/320*320+160
Ustaw wartość zmienną 'B' obiektu 'postać' na Y( "postać" )/200*200+100
Ustaw pozycję X obiektu 'kamera' na Alterable Value A( "postać" )
Ustaw pozycję Y obiektu 'kamera' na Alterable Value B( "postać" )
Centruj ekran w płaszczyźnie X na value("kam-x")
Centruj ekran w płaszczyźnie Y na value("kam-y")


W tym zdarzeniu ustaliliśmy, że wartości zmienne A i B naszej postaci, mają zawsze być równe pozycji X i Y naszej postaci, dzieląc, mnożąc i dodając odpowiednie wartości liczbowe, które są zależne od rozmiaru naszego okna gry.
Pozwólcie, że wyjaśnię to dokładniej:
Mamy np. obliczenie '320*320+160'. Co oznaczają te liczby?
Otóż:
320 - szerokość (w pixelach) naszego okienka gry, a
160 - 1/2 szerokości (w pixelach) naszego okienka gry (aby głębiej poznać ten mechanizm, możesz pobawić się tymi obliczeniami i poobserwować skutki).
...analogicznie z wielkością Y.

Ustaliliśmy również, że pozycja X i Y naszego obiektu kamery, ma być zawsze zależna od wartości zmiennych A i B naszej postaci. Dzięki temu, obiekt 'kamera' będzie się przemieszczał względem naszej postaci skokowo (co 320 i 200 px).

Dalej ustaliliśmy, że ekran ma być zawsze wycentrowany w płaszczyźnie X i Y na odpowiednie wartości liczników 'kam-x' i 'kam-y'. Liczniki te, posłużą nam jako miernik płynności (ale o tym później...).

Kolejnym krokiem jest stworzenie następujących zdarzeń:

2
• Jeśli pozycja X obiektu 'kamera' jest większa (>) od wartości licznika 'kam-x'
Dodaj 5 do licznika 'kam-x'


Gdy pozycja X naszego obiektu kamery będzie większa od wartości licznika 'kam-x', to do jego wartości będzie dodawało się 5. Zamiast piątki, możemy użyć innej. Pamiętać jednak musimy, że im większa wartość dodawana, tym płynność będzie mniej wyrazista. Myślę, że wartość 5 jest optymalna w tym przypadku, dlatego jej użyłem.:)

Dalej jedziemy analogicznie:

3
• Jeśli pozycja X obiektu 'kamera' jest mniejsza (<) od wartości licznika 'kam-x'
Odejmij 5 do licznika 'kam-x'


Czas na pozycje Y. Znów analogicznie:

4
• Jeśli pozycja Y obiektu 'kamera' jest większa (>) od wartości licznika 'kam-y'
Dodaj 5 do licznika 'kam-y'


...i...

5
• Jeśli pozycja Y obiektu 'kamera' jest mniejsza (<) od wartości licznika 'kam-y'
Odejmij 5 do licznika 'kam-y'


Na samym końcu, możemy stworzyć warunek, który ukrywać będzie nasz obiekt 'kamera'.:)

Zakończenie
Czas uruchomić nasz silniczek i cieszyć się uzyskanym efektem. Powinno wyjść Ci coś takiego.Jeśli masz jakieś wątpliwości - nie krępuj się - pisz w komentarzach.

Pozdr!

artykuł napisał Tomasz (Tropik) Gaffke - GafFame Arts 2009, Kopiowanie i rozpowszechnianie tylko za zgodą autora.
Ostatnio edytowane 13 grudnia 2009, 19:23 przez Tropik
Komentarze
szymat @ 9 stycznia 2010, 11:37
extra 6/6, przydało się:P
Dodaj komentarz
Kolor:   Rozmiar:

Dodał Tropik
Profil PW
Twoja ocena
Inne tego autora
^ Do góry
© 2009 - 2010 Fabryka Gier. Publikowanie materiałów tylko za zgodą autorów.
Realizacja: Maciej Lamberski *-: