Specyfikacja Przed-Implementacyjna

Komponenty i pakiety

Można wyróżnić 5 głównych komponentów:

  • Game - komponent główny, do niego są delegowane zdarzenia inicializacji składników gry, aktualizacji stanu gry oraz renderowania
  • Engine - silnik gry, tutaj zawarta jest większa część logiki interakcji (event dispatching), model a także algorytmy generacji planszy, poruszania botów
  • GamePlay - wizualna część gry, kolizje
  • Communicator - wystawia interfejs do komunikacji między graczami, przekazywanie informacji o zmianie stanu gry między graczami jest ukryte za * EventDispatcher'em, który wywołuje odpowiednie metody Communicatora (Klienta lokalnego lub zdalnego)
  • Hud - część wizualizacji związana z kok-pitem gry (pasek poniżej widoku gry)

Dodatkowo można wydzielić pakiet ze specjalnymi efektami wizualizacyjnymi (światło latarki, spray, odór)

Szkic klas

Powiązania między główną klasą gry a klasami silnika

Stany gry

Tryb gry i menu

Postacie w grze

Diagram czynności

Zarówno renderowanie głównego ekranu gry, jak i przejście przez menu gry jest obsługiwane za pomocą wzorca projektowego State. Daje to podział kodu poprzez ograniczenie wielkości bloków if-elseif-else, a także rozdzielenie logiki. Zmiany stanów są dokonywane w obsłudze update(). Dokładne przybliżenie tych procesów jest zobrazowane na diagramach sekwencji poniżej.

Sekwencje

Operacje update() i render() mogą być wywoływane nieprzemiennie. update() oznacza interakcje ze strony gracza (np. naciśnięcie klawisza), render() natomiast jest wywoływana z określoną przez fps (ewentualnie wyregulowaną przez silnik gry) częstotliwością.

Sekwencja główna aktualizacji stanu gry i renderowania

Konkretna sekwencja renderowania w trakcie gry

pl/projects/theprusak/spec_pre.txt · ostatnio zmienione: 2010/07/25 18:16 (edycja zewnętrzna)
Recent changes RSS feed Creative Commons License Donate Driven by DokuWiki