Opis klas i struktury programu

Aplikacja podzielona jest na następujące klasy:

 

CAboutDlg

Klasa ta obsługuje okienko dialogowe "O programie...". Jest dziedziczona z klasy CDialog

 

CBleApp

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.

 

CBleDoc

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. 

 

CBleView

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.

 

cCzolg

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.

 

CMainFrame

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.

 

cPocisk

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).

 

cTeren

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. 

 

cWiatr

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. 

 

Poczatek

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. 

 

Pomoc

Klasa ta obsługuje okienko dialogowe "Pomoc". Jest dziedziczona z klasy CDialog. W okienku tym wyświetlane są informacje dotyczące obsługi programu.

 

Sklepik

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.