Celem projektu jest stworzenie gry w której gracz ma za zadanie
Transkrypt
Celem projektu jest stworzenie gry w której gracz ma za zadanie
Analiza, projektowanie i programowanie obiektowe Projekt: Gra Galaxia Diana Kisiała Tomasz Jewiarz Grupa I rok IV Gra Galaxia Diana Kisiała, Tomasz Jewiarz gr. 1 Wymagania: Celem projektu jest stworzenie gry, w której gracz ma za zadanie wyeliminować zbliżających się przeciwników przy użyciu dostępnej broni. Gracz steruje nowoczesnym statkiem kosmicznym. Jego zadaniem jest obrona Ziemi przed niebezpiecznymi statkami, które do niej się zbliżają. Za zniszczenie wrogiego statku gracz dostaje odpowiednią liczbę punktów - w zależności od zlikwidowanego pojazdu: 1,2 lub 3 . Co jakiś czas na planszy pojawia się duży przeciwnik, za którego gracz może dostać aż 10 punktów. Po zabiciu wszystkich przeciwników na planszy przechodzimy do następnego poziomu. Do przejścia mamy 6 poziomów, które różnią się układem przeciwników na planszy. Gracz: Porusza się w prawo i lewo. Posiada (1-5) żyć – o ilości żyć decyduje sam gracz… zmieniając w opcjach Może zmienić szybkość przeciwników ( max 6 stopni) oraz ilość plansz , które chce przejść – max 6 plansz Ma zniszczyć przeciwników przy użyciu aktualnie posiadanej broni. Niszcząc przeciwnika otrzymuje punkty. Przeciwnicy: Trzy różnego rodzaju statki obcych: o Poruszają się w prawo w lewo oraz w miarę upływu czasu w dół ekranu. o Każdy stwór ma inną liczbę punktów (1,2,3). Jeden duży statek o dużo szybszej broni oraz większej liczbie punktów (10) o Statek ten pojawia się na planszy co jakiś czas o Przesuwa się tylko i wyłącznie od lewej do prawej strony planszy Diagram przypadków użycia: <<include>> GRA Rozpocznij grę Zobacz rekord Zobacz instrukcje Gracz Zobacz autorów Zmień Opcje Wyjdź z gry 2 Gra Galaxia Diana Kisiała, Tomasz Jewiarz gr. 1 Opis przypadków użycia: 1. Rozpocznij grę: a. Opis: 2. 3. 4. 5. 6. Gracz rozpoczyna nową grę. b. Scenariusz: Gracz przyciska przycisk „nowa gra” i rozpoczyna grę. Zobacz rekord: a. Opis: Będzie zawierać najlepszy wynik osiągnięty w grze przez gracza. Zobacz instrukcje: a. Opis: Gracz ma do dyspozycji instrukcję, która będzie sposób sterowania. Zmień opcje: a. Opis: Gracz ma możliwość zmiany 3 opcji : Ilość żyć (1-5) Ilość plansz do przejścia (1-6) Szybkość przeciwników (0-6) Zobacz autorów: a. Opis: Opcja będzie zawierć autorów projektu. Wyjdź z gry: a. Opis. Gracz w dowolnym momencie opuszcza grę przez przyciśnięcie klawisza „K”. Spowoduje to powrót do menu głównego, z którego gracz wybiera opcję „Wyjdź z gry” Lista kandydatów na klasy: Intro Menu Plansza Gracz Przeciwnik : duży, 4 małe i duży stwór Broń Osoba Gra Baza Pliki 3 Gra Galaxia Diana Kisiała, Tomasz Jewiarz gr. 1 Lista klas: Obrazek Broń Wróg Gracz Plansza Menu Pliki Diagramy klas: Pliki Obrazek Menu 1 6 Plansza 1 1 Broń wypuszcza wypuszcza 25 1 Wróg zabija Gracz 4 Gra Galaxia Diana Kisiała, Tomasz Jewiarz gr. 1 Opis klas: Obrazek Zadaniem obiektów tej klasy jest rysowanie obrazków i cyfr na planszy - cyfry : SDL_Surface - cyfry - obrazki cyfr od 0 -9 + rysuj() + ustaw_cyfre() + rysuj() - rysuje obrazki na planszy + ustaw_cyfre() - ustawia cyfrę na planszy Broń Klasa ta będzie opisywać broń i jej siłę użytą w grze. - kula : SDL_Surface + x : int + y : int - kula – obrazek kuli + x - położenie kuli na osi x + y - położenie kuli na osi y + ustaw() + rysuj_b () + ustaw() - ustawia położenie broni na planszy + rysuj_b () - rysuje lecącą kule Wróg - nr_wroga : int - il_punktow : int - czas : float - ograniczenie : int - przec : SDL_Surface + x : int + y : int + x_dw : int Klasa będzie opisywać wroga - nr_wroga - numer wroga do wyboru mamy 3 wrogów - il_punktow - ile punktów za każdego wroga - czas - zmienna potrzebna do określenia szybkości przesuwania i opadania wroga - ograniczenie - ograniczenie przesunięcia wroga na planszy - przec - obrazki wrogów + x - położenie wroga na osi x + y - położenie wroga na osi y + x_dw – położenie dużego wroga na osi x - gr : SDL_Surface - zycia : SDL_Surface - punkty : SDL_Surface - przez : SDL_Surface - il_zyc : int - punkty: int - xpos : int - ypos : int + ustaw() - ustawia miejsce gdzie ma stać wróg + ustaw-dw() - ustawia miejsce gdzie ma stać duży wróg + rysuj_w() - rysuje i przesuwa wroga + ile_pkt() - zwraca ilość punktów dla konkretnego wroga Klasa ta będzie opisywać gracza - gr - obrazek gracza - zycia – obrazek : napis życia - punkty – obrazek : napis punkty - przez – obrazek „/” - il_zyc - ile żyć ma gracz - punkty – ile punktów ma gracz - xpos - położenie gracza na osi x - ypos - położenie gracza na osi y + ustaw_punkty() + ile_zyc() + ustaw_ile_zyc() + numer_planszy() + odejmij_zycie() + ustaw_punkty() - ustawienie punktów na planszy + ile_zyc() - zwraca ilość żyć gracza + ustaw_ile_zyc() – ustawia ilość żyć dla gracza + numer_planszy() - rysuje numer planszy + odejmij_zycie() - odejmuje życie gdy je stracimy + ustaw() + ustaw_dw(); + rysuj_w() + ile_pkt() Gracz 5 Gra Galaxia Diana Kisiała, Tomasz Jewiarz gr. 1 + dodaj_punkty() + ile_pkt () + zeruj() + ustaw () Plansza - tlo : SDL_Surface - czy_wystrzelony : int - il_przec : int - czy_wrog_aktywny : int - ktory_wrog: int - przesun_wroga : int - il_zabitych_przec:int - czy_wystrzelony_wr : int - czy_wystrzelony_dw :int - nr_planszy: int - koniec_gry : int - poczatek_gry: int + wrog_przydziel_pam() + zeruj() + wrog_zeruj() + laduj () + inicjalizacja_planszy() + rysuj_tlo () + ile_zdobyto_pk() + laduj_plansze() + rysuj_plansze + wynik() + porusz_graczem + kolizja () + utrata_zycia + utrata_zycia_dw() + dodaj_naboj() + strzal () + dodaj_naboj_wrogowi () + strzal_wroga() + dodaj_naboj_dw() + strzal_dw() + czy_koniec_planszy () + koniecGry() + wrog_przydziel_pam() + opcje () Menu - back : SDL_Surface - autorzy : SDL_Surface - wynik : SDL_Surface - instrukcja : SDL_Surface + dodaj_punkty() - dodaje punkty gdy zabijemy wroga + ile_pkt () - zwraca ilość punktów dla gracza + zeruj() - zeruje ustawienia gracza + ustaw () - rysujemy gracza na planszy Zadaniem obiektów tej klasy jest rozmieszczenie gracza i przeciwników na planszy i obsługa zdarzeń czasie gry, - tlo - rysunek tła - czy_wystrzelony - czy gracz wystrzelił kulę - il_przec - ilość przeciwników na planszy - czy_wrog_aktywny - czy dany wróg jest aktywny na planszy czy go juz tam nie ma - ktory_wrog - jaki wróg gdzie stoi na planszy ( do wyboru wróg 0,1,2) - przesun_wroga - czy wrogowie się przesuwają czy nie - il_zabitych_przec - ilość zabitych przeciwników - czy_wystrzelony_wr - czy wróg wystrzelił kulę - czy_wystrzelony_dw - czy duży wróg wystrzelił kulę - nr_planszy - numer aktywnej planszy - koniec_gry - czy gra się zakończyła - poczatek_gry - zmienna potrzebna przy utracie życia na 1 planszy bez niej gra ładuje się na nowo - wszystkie życia i 0 punktów + wrog_przydziel_pam() – przydziela pamięć dla wrogów + zeruj() - zeruje planszę + wrog_zeruj() - zeruje dane dotyczące wroga + laduj () - laduje tło + inicjalizacja_planszy() - inicjalizuje 1 plansze gry + rysuj_tlo () - rysuje tło + ile_zdobyto_pk() - zwraca ilość zdobytych punktów – potrzebne do rekordu + laduj_plansze() - inicjalizuje plansze –ustawnie przeciwników + rysuj_plansze() - rysuje ustawionych wrogów na planszy + wynik() - rysuje dane : punkty i ilość żyć + porusz_graczem() - poruszenie graczem po przyciśnięciu klawiszy + kolizja () - sprawdzenie kolizji przeciwnika z kula gracza, zabicie przeciwnika + utrata_zycia() - sprawdzenie kolizji kuli wroga z graczem - utrata życia + int utrata_zycia_dw() – sprawdza kolizje kuli od dużego wroga z graczem – utrata życia + dodaj_naboj() - dodaje kuli graczowi + strzal () - gracz strzela + dodaj_naboj_wrogowi () - dodanie kuli wrogowi + strzal_wroga() - wrog strzela + dodaj_naboj_dw () - dodanie kuli dużemu wrogowi + strzal_dw() - duży wrog strzela + czy_koniec_planszy () - sprawdzenie czy nastąpił koniec planszy + koniecGry() - koniec gry wiadomo o co chodzi ;) + wrog_przydziel_pam() – przydziela pamięć dla wrogów + opcje() – wywołuje funkcje ustawiającą ilość żyć dla gracza W klasie będzie się znajdować menu gry, autorzy, instrukcja, najlepszy wynik osiągnięty w grze - back; - obrazek tła głównego - autorzy - obrazek autorzy - wynik - obrazek zdobyłeś ....punktów - instrukcja - obrazek instrukcja 6 Gra Galaxia Diana Kisiała, Tomasz Jewiarz gr. 1 - koniec : SDL_Surface - koniec_info : SDL_Surface - rekord_napis : SDL_Surface - buton : SDL_Surface - strzałki : SDL_Surface - która_plansza : int - czy_przyciski_aktywne : int - czy_menu_aktywne: int - rekord : int - done : int - il_zyc1 : SDL_Surface - il_plansz1: SDL_Surface - szybkosc1: SDL_Surface - il_roznych_przec1: SDL_Surface + laduj() + tlo() + gra() + okno() - koniec - obrazek - koniec gry - koniec_info- obrazek - koniec gry - rekord_napis - napis - ranking - buton – obrazki przycisków - strzałki – obrazki strzałek w opcjach - ktora_plansza – liczba pomocnicza informująca nas o numerze planszy - czy_przyciski_aktywne - czy przyciski gracza są aktywne - czy_menu_aktywne – czy przyciski menu są aktywne - rekord – najlepszy wynik w grze - done – zmienna potrzebna do zamknięcia okna - il_zyc - obrazek ilość żyć - il_plansz1: obrazek ilość plansz - szybkosc1: obrazek szybkość - il_roznych_przec1: obrazek ilość rożnych przeciwnikow + laduj() - ładuje obraki + tlo() - rysuje tło + gra() - obsługa gry + okno() - rysuje okno , menu gry, elementy po wyborze opcji z menu Pliki + Rekord : int + ilosc_zyc : int + ilosc_plansz : int + predkosc : int + ilosc_roznych_przec : int + czytaj_rekord () + zapisz_rekord () + zapisz_opcje () + czytaj_opcje () W klasa ta odpowiada za operację na plikach – wpisywanie do pliku i czytanie z pliku – rekordu oraz opcji + Rekord – przechowuje najwyższy rekord + ilosc_zyc - przechowuje opcje – ilość żyć + ilosc_plansz – przechowuje opcję – ilość plansz + predkosc - przechowuje opcje - prędkość + ilosc_roznych_przec – przechowuje opcję –ilość różnych przeciwników + czytaj_rekord () – czyta rekord z pliku + zapisz_rekord () – zapisuje rekord do pliku + zapisz_opcje () - czyta opcje z pliku + czytaj_opcje () – zapisuje opcje do pliku 7 Diagramy przebiegu: m:Menu Gracz wyswietl_rekord() P:Pliki czytaj_rekord() Wyświetlenie najlepszego wyniku m:Menu p: Plansza g:Gracz w:Wróg strzelaj() czy_skonczona() kolejna_plnasza() Przejście do nastepnego poziomu czy_zniszczony() dodajPunkty() Gracz strzela Gra Galaxia Diana Kisiała, Tomasz Jewiarz gr. 1 w:Wróg m:Menu Gracz g:Gracz strzelaj() p: Plansza m:Menu Gracz g:Gracz czas_minal () czy_zniszczony() czy_zniszczony() zwrocDane() zwrocDane() wpisz() wpisz() zakonczGre() Gracz ginie zakonczGre() Przeciwnik zbliżył się do gracz - gracz ginie 9 Gra Galaxia Diana Kisiała, Tomasz Jewiarz gr. 1 g:Menu Gracz rozpocznijGre() <<create>> : Plansza <<create>> <<create>> g: Gracz :Wróg ustawGracza() Ustaw_wroga() ustaw_dw() <<destroy>> zakonczGre() <<destroy>> <<destroy>> Rozpoczęcie gry 10 Gra Galaxia Diana Kisiała, Tomasz Jewiarz gr. 1 m: Menu Gracz wyswietl_instrukcje() wyswietl_autorow() Wyświetlenie autorów Wyświetlenie instrukcji m:Menu Gracz wyswietl_opcje() m: Menu Gracz P:Pliki czytaj_opcje() zmien_il_zyc() zmien_il_plansz() zmien_szybkosc() zapisz_opcje() Wyświetlenie i zmiana opcji 11