Aplikacja podzielona jest na następujące klasy:
Klasa ta obsługuje okienko dialogowe "O programie...". Jest dziedziczona z klasy CDialog
Standardowo generowana przez kreatora klasa aplikacji. Jest ona dziedziczona z klasy CWinApp. Zarządza ona inicjalizacją aplikacji. Odpowiedzialna jest za tworzenie powiązań pomiędzy klasami dokumentu, widoku i ramki. Odbiera również komunikaty od systemu Windows, kierując je następnie do odpowiedniego okna docelowego. W naszej aplikacji nie została ona modyfikowana.
Standardowo generowana przez kreatora klasa aplikacji. Jest ona dziedziczona z klasy CDocument. Przechowuje dane aktywnego dokumentu. W naszym przypadku w klasie tej znajdują się funkcje wyświetlające w pasku stanu dane aktywnego gracza oraz funkcje wykonywane po wyborze nowej gry.
Standardowo generowana przez kreatora klasa aplikacji. Jest ona
dziedziczona z klasy CView. Klasa odpowiedzialna jest za formowanie wizualizacji
danych dokumentu w celu przedstawienia ich użytkownikowi oraz umożliwienia mu
interakcji z owymi danymi. Klasa widoku uzyskuje dostęp do danych których
wymaga za pośrednictwem funkcji składowych dostarczanych przez dokument.
W
naszym przypadku znajdują się funkcje inicjalizujące OpenGL, wywoływane są
funkcje generujące teren, rozmieszczające graczy. Obsługiwane są także
zdarzania generowane przez przyciski umieszczone w pasku narzędziowym,
klawiaturę oraz mysz.
Klasa ta nie dziedziczy z żadnej z klas MFC, jest naszą własną klasą. W klasie tej są przechowywane parametry gracza - energia, posiadane bronie, punkty, ustawienia lufy i siły strzału, jego pozycja na scenie oraz zmienne pomocnicze jak np. znacznik aktywności gracza. Jest tutaj zdefiniowany wygląd czołgu.
Standardowo generowana przez kreatora klasa aplikacji. Jest ona dziedziczona z klasy CFrameWnd. Rolą tej klasy jest dostarczenie aplikacji okna roboczego. Umieszcza w oknie głównym pasek tytułowy zawierający przyciski minimalizowania, maksymalizowania oraz zamykania okna, menu systemowe i umożliwia zmianę położenia i wymiarów okna. Obsługuje również procesy kreacji, inicjalizacji i usuwania pasków narzędziowych i stanu. My dodaliśmy w tej klasie obsługę pola Kombi, nie obsługiwanego przez standardowe kreatory.
Klasa ta nie dziedziczy z żadnej z klas MFC, jest naszą własną klasą. W klasie tej są zdefiniowane funkcje odpowiedzialne za rysowanie pocisku, jego wybuchu oraz efektów wybuchu (dziury w podłożu).
Klasa ta nie dziedziczy z żadnej z klas MFC, jest naszą własną klasą. Klasa ta przechowuje siatkę terenu, rysuje teren oraz umożliwia manipulację na jego siatce.
Klasa ta nie dziedziczy z żadnej z klas MFC, jest naszą własną klasą. Klasa ta przechowuje dane wiatru, rysuje go w postaci strzałek a także losuje jego zmiany.
Klasa ta obsługuje okienko dialogowe "Nowa gra". Jest dziedziczona z klasy CDialog. W niej pobierane są od użytkownika informacje na temat liczby graczy i ilości rozgrywanych rund.
Klasa ta obsługuje okienko dialogowe "Pomoc". Jest dziedziczona z klasy CDialog. W okienku tym wyświetlane są informacje dotyczące obsługi programu.
Klasa ta obsługuje okienko dialogowe "Sklep". Jest dziedziczona z klasy CDialog. Klasa ta pobiera z dokumentu dane dotyczące funduszy i broni posiadanych przez gracza i obsługuje zakupy - nie pozwala na zakup większej ilości broni niż na to pozwalają posiadane pieniądze, wyświetla ilość pozostałych do końca rund.
Poza tym w programie zdefiniowane są funkcje globalne tworzące scenę - generujące teren, rozmieszczające graczy (sprawdzając jednocześnie, czy nie zachodzą na siebie) oraz funkcja otwierająca sklep i wyświetlająca podsumowanie rozgrywki.