Pobierz dokumentacje ()

Transkrypt

Pobierz dokumentacje ()
Państwowa Wyższa Szkoła Zawodowa w Tarnowie
Instytut Politechniczny
Informatyka Stosowana III r.
DOKUMENTACJA
Snake 3D
Piotr Gębiś
Paweł Gładysz
Dokumentacja do projektu „Snake 3D”. W dokumencie zawarty jest opis projektu, instrukcja obsługi
oraz funkcje projektu.
Copyright Piotr Gębiś & Paweł Gładysz ©
Strona 1
1) Opis problemu – cel projektu
Celem projektu było napisanie programu przy użyciu OpenGl/DirectX, który będzie
prezentował przestrzeń 3D. Celem tego projektu było zapoznanie się z bibliotekami
graficznymi dostępnymi wraz z oprogramowaniem Softwerowym.
Głównym problem było wybranie koncepcji realizowanego projektu i od tego
zaczęliśmy. Założyliśmy, że program będzie prosta grywaną grą, w którą będzie można zagrać.
Nasz projekt to gra „Snake 3D” umożliwiająca poruszaniem się wężem, zbieraniem
punktów oraz przechodzenie kolejnych poziomów trudności.
2) Analiza problemu i teoretyczna propozycja jego rozwiązania
Program ma być prosta grą i napisaną przy użyciu narzędzi programowania takich jak
Microsoft Visual Studio. Języki programowania, które wybraliśmy w celu osiągnięcia naszego
zadania to język C++. Silnik gry wspiera biblioteka OpenGL. Całość gry dedykowana jest
platformie Microsoft Windows.
Analiza wymagań użytkownika
Z punktu widzenia użytkownika gra powinna:
 posiadać łatwy gameplay oraz intuicyjny system obsługi
 udostępniać przynajmniej jeden poziom gry
 możliwość zbierania owoców i przechodzenia leveli.
Z punktu widzenia programisty gra powinna:
 zawierać podział projektu na moduły
 w prosty sposób dopisywania kolejnych poziomów trudności gry (plansz).
Gameplay
Nasz program oferował będzie bardzo prosty gameplay, wspierany przez pełni
trójwymiarową grafikę komputerową. Gracz będzie miał za zadanie poruszanie się wężem po
planszy oraz zbieranie czerwonych owoców (sześcianów). Gracz przy poruszaniu się po
planszy musi uważać na ściany z którymi występuje kolizja. Po zderzeniu ze ścianą następuje
koniec gry i oczywiście przegrana. W naszym projekcie nie ma „żyć”. Jest tylko jedna próba
pobicia rekordu.
Po uruchomieniu projektu pokazują się 2 okna. Jedno okno to okno z grą. W tym oknie
użytkownik porusza się po planszy i przechodzi kolejne poziomy trudności. W drugim oknie
wyświetlane są statystyki dotyczące gry.
W projekcie napisaliśmy 3 poziomy trudności. Każdy poziom różni się od siebie
szybkością poruszania się węża, ilością ścian z którymi występuje kolizja oraz ilością
potrzebnych owoców (czerwonych kostek) które trzeba zebrać by ukończyć dany level.
Oczywiście im wyższy poziom tym owoc jest za więcej punktów. ( I poziom 2pkt, II poziom
4 pkt, III poziom 6 pkt).
Ściany na poszczególnych poziomach są zawsze w tych samych punktach na planszy,
natomiast położenie owoca generowane jest automatycznie i losowo.
Copyright Piotr Gębiś & Paweł Gładysz ©
Strona 2
I.
poziom:
W I poziomie plansza jest bardzo prosta. Jest tylko 4 sześciany z którymi występuje kolizja.
Wąż porusza się wolno i potrzeba zebrać tylko 9 owoców aby go ukończyć. W tym poziomie
owoc punktowany jest za 2 pkt.
II.
Poziom
W II poziomie plansza jest już troszkę trudniejsza do przejścia. Jak widać na załączonym
zrzucie ściany z którymi występuje kolizja jest więcej. Wąż porusza się szybciej i aby
ukończyć ten level trzeba zebrać 15 owoców. Każdy owoc punktowany jest za 4 pkt.
Copyright Piotr Gębiś & Paweł Gładysz ©
Strona 3
III.
poziom
Poziom III jest ostatnim poziomem jaki napisaliśmy w projekcie. Na tym poziomie wąż
porusza się szybko i każdy owoc jest za 6 pkt.
Po uruchomieniu gry pojawia się także drugie okno w którym wyświetlane są
komunikaty oraz statystyki związane z grą.
ilość potrzebnych owoców do przejścia poziomu
Imię (nick) oraz rekord punktów które udało się zebrać do skucia
suma punktów które uzbierał gracz
ilość owoców których zostało, aby ukończyć poziom
ilość punktów za jeden zebrany owoc na poszczególnym poziomie
ilość owoców które zostały zebrane na poszczególnym poziomie
Copyright Piotr Gębiś & Paweł Gładysz ©
Strona 4
Jeżeli nastąpi kolizja a gracz pobił rekord w oknie komunikatów i statystyk pojawi się
napis by podać swoje imię.
Imię oraz ilość punktów uzyskanych przez gracza zapisywane są w pliku i po każdym
uruchomieniu gry są z niego wczytywane, dzięki czemu nie tracimy informacji o rekordzie po
zamknięciu gry.
Jeżeli gracz nie uzyskał wystarczającej ilości punktów by pobić rekord wyświetlany
jest komunikat o przegranej i zdobytej ilości punktów.
3) Implementacja
Program został podzielony na funkcje i klasy które usprawniają działanie całości.
Podzielono kod i wstawiono go do plików. Pliki noszą odpowiednią nazwę co do zawartości.
Najciekawsze fragmenty kodu:
Ta część dokumentacji została usunięta
4) Testowanie
Program był testowany wielokrotnie pod względem grywalności, poprawności oraz
możliwości osiąganych w grze. Z uruchomieniem nie ma problemu na platformie sprzętowej
gdzie jest zainstalowany Microsoft Windows XP/Vista gdyż właśnie na niej był pisany
program.
5) Możliwości dalszej rozbudowy
Projekt stanowi podstawę gry. Oczywiście program można bez przeszkód rozbudować.
Podstawową i bardzo przydatną funkcją było by menu gry. Mogło by ono zawierać
takie funkcje jak:
 pausa gry,
 zapisanie aktualnego stanu gry,
 odczyt zapisanej gry.
 możliwość szybkiego wyjścia z gry.
Dodatkowo grę można ubogacić o efekty wizualne takie jak:
 wąż mógł by być bardziej realistyczny,
Copyright Piotr Gębiś & Paweł Gładysz ©
Strona 5
 urozmaicenie tekstury planszy (podłogi). Mogła by ona przypominać naturalne
środowisko jakiegoś gatunku węża,
 owoce na planszy (w naszym przypadku czerwone sześciany) powinny być w
kształcie realnych kształtów owoców np.: jabłek, gruszek, wiśni itd…,
 efekty świetlne np. ściemnianie i rozjaśnianie tła dookoła planszy oraz zmiana
jego koloru w zależności o stopnia trudności.
Dodatkowo w projekcie można było by dopisać:
 więcej poziomów trudności (plansz),
 „ekstra owoce” które pojawiały by się na planszy tylko przez pewien okres
czasu i były by np. podwójnie punktowane,
 multiplayer`a – po planszy poruszały by się dwa węże jednocześnie i wygrywała
by ta osoba która zbierze więcej owoców i nie zderzy się ze ścianą ani z drugim
wężem,
 funkcje wizualizującą która mogła by obracać planszą w dowolnym kierunku
oraz zmniejszać i zwiększać plansze,
 efekty dźwiękowe np. przy zebraniu owoca, przejściu do następnego levelu lub
kolizji ze ścianą,
 kod pod platformę Linux`ową.
Copyright Piotr Gębiś & Paweł Gładysz ©
Strona 6