Gra 2D, część 9: Efektowne przejścia między stanami

25.08.2010 - Marcin Milewski
TrudnośćTrudność

Rozważania o implementacji ;-)

Większość efektów, które możemy sobie wyobrazić, posiada wiele cech wspólnych (np. wykorzystują przezroczystość). Dlatego chcielibyśmy odwoływać się do nich przez jednolity interfejs. Do jego podstawowych metod możemy zaliczyć: tworzenie, aktualizację oraz rysowanie efektu. Poza tym chcielibyśmy mieć dostęp do jego różnych parametrów. O tym, jak wykonać to w wygodny sposób, przekonamy się w jednej z kolejnych sekcji.

Najpopularniejsze efekty, które możemy sobie wyobrazić, możemy podzielić na cztery podstawowe grupy:

  • Krawędź zamiatająca - krawędź (konkretny efekt definiuje, jak ona wygląda. Może to być zwykła pionowa kreska), która usuwa obraz jednego stanu dodając wygląd innego.
  • Rosnący kształt - na ekranie pojawia się pewien kształt (np. gruszka), który powiększając się ukazuje nowy stan zamazując stary.
  • Wskazówka zegara - zamiata kolejne części obrazu zgodnie z ruchem wskazówek zegara. Może być wiele wskazówek, bądź też efekt może bardziej przypominać wiatrak niż zegar.
  • Wężyki - w najróżniejszy sposób poruszający się po ekranie wężyk powodujący przejście z jednego stanu do drugiego.

Z jednej strony chcielibyśmy mieć ładny, obiektowy kod. Można by go rozszerzać nie tylko o nowe efekty, ale nawet o całe grupy. Roboczy schemat takiego rozwiązania znajduje się poniżej.
Z drugiej jednak strony, tworzenie przesadnie rozbudowanego systemu efektów nie leży w centrum naszych zainteresowań. Wszak naszym nadrzędnym celem jest rozwijanie gry i nie chcemy skupiać się na mało istotnych elementach. A zatem do naszych zastosowań powinno wystarczyć kilka prostych efektów lub, co lepsze, rodzin efektów.

Przykładowy podział efektów na 4 grupy.
Miniatury na podstawie http://service.real.com/help/library/guides/ProductionGuide/prodguide/htmfiles/transit.htm

Ostatnią kwestią, o której należy wspomnieć, są skrypty. Wyobraźmy sobie, że efekty w naszej grze możemy testować bez potrzeby ponownej kompilacji kodu. Dodajmy do tego możliwość definiowania nowych efektów bez zmiany choćby jednej linijki kodu aplikacji. Możemy w łatwy sposób dzielić się stworzonymi efektami ze znajomymi i w łatwy sposób je aktualizować. Brzmi nieźle? Okazuje się, że takie graficzne "bajery", jak efekty przejść, są idealnymi kandydatami na przeniesienie ich poza główny kod aplikacji - do plików ze skryptami. Jest tak między innymi dlatego, że ich kod może często się zmieniać (ze względu na testowanie różnych parametrów). Poza tym nie są to elementy wymagające dużej mocy obliczeniowej (skrypty mogą być nawet kilkadziesiąt razy wolniejsze od kodu C++). Niestety nasza gra w obecnej chwili nie jest jeszcze zintegrowana z żadnym z języków skryptowych.

"Dobra nowina" jest natomiast taka, że kiedyś nadejdzie dzień, w którym dodawanie kolejnych efektów stanie się o wiele prostsze i przyjemniejsze ;-). Przyjrzyjmy się teraz implementacji efektów przejść między stanami w naszej grze.

0
Twoja ocena: Brak

Copyright © 2008-2010 Wrocławski Portal Informatyczny

design: rafalpolito.com