/* Glowna czasc modulu Interfejs - zawiera deklaracje klasy Interfejs, ktorej obiekty sa odpowiedzialne za przebieg i wyglad zewnetrzny gry autor : Anna Doros GRUPA 5 */ #ifndef __INTERFEJS_H #define __INTERFEJS_H #include <qwidget.h> #include <qtimer.h> #include <qimage.h> #include <qlist.h> #include <qaccel.h> #include "ElementySwiata.h" #include "StatystykaGry.h" #include "StatystykaEtapu.h" #include "Informacje.h" #include "WejscieWyjscie.h" #include "parametry.h" #include "Guzik.h" #include "OknoGry.h" #include "stale_Interfejs.h" #include "ObrazPlanszy.h" #include "sciezki.h" class Interfejs: public QWidget { Q_OBJECT protected: ObrazPlanszy * obraz_planszy; Plansza * plansza; WejscieWyjscie * wejscie_wyjscie; QTimer * timer; /* do sterowania gra */ QTimer * timer_czas; /* do odmierzania czasu */ QTimer * timer_wypusc; /* do wypuszczania lemingow */ QAccel * skrot; /* skrot klawiszowy do zdjecia */ int ile_wypuscic; /* ile lemingow nalezy wypuscic z wejscia */ int ile_na_planszy; /* ile lemingow znajduje sie na planszy */ int czy_pauza; /* opisuje stan pauzy ( aktywna lub nie ) */ int czy_zaglada; /* czy etap jeszcze trwa (nie jest konczony) */ int odstep; /* jaki jest odstep miedzy wychodzacymi z wejscia lemingami - aby zachowac jednolity odstep mimo uzywania pauzy */ int odstep_czas; /* aby zachowac prawidlowe odmierzanie czasu mimo uzywania pauzy */ int nowy_element; /* typ nowego elementu */ int parametry_wczytane; /* czy wczytane parametry kolejnego etapu */ Param_etap parametry_etapu; /* parametry aktualnego etapu */ StatystykaEtapu * stat_etap; /* statystyka etapu */ StatystykaGry * stat_gra; /* statystyka gry */ OknoGry * okno_gry; /* okno gry = guziki + pasek informacyjny */ Guzik * guziki[ILE_GUZIKOW]; /* guziki innych okien */ char * sloty[ILE_DODATKOW]; /* tablica sloty(do dodawania lemingow specjalnych) */ QList<ElementSwiata> lista_elem; /* lista elementow swiata */ int czas; /* czas trwania etapu */ int do_przeprowadzenia; /* liczba lemingow do przeprowadzenia */ int dodatkowi[ILE_DODATKOW]; /* liczba dodatkowych komandosow, bomb */ public: Interfejs(QWidget *parent=0,const char *name=0); ~Interfejs(); public slots: void nowyBloker(Para,int); void nowaBomba(Para,int); void nowyKopaczDolny(Para,int); void nowyKopaczPoziomy(Para,int); void nowyKopaczPionowy(Para,int); void nowyKopaczGorny(Para,int); void nowySchodkarzGorny(Para,int); void nowySchodkarzDolny(Para,int); void nowySchodkarzPoziomy(Para,int); void nowyPijus(Para,int); void dodajBlokera(); void dodajBombe(); void dodajKopaczaDolnego(); void dodajKopaczaPoziomego(); void dodajKopaczaPionowego(); void dodajKopaczaGornego(); void dodajSchodkarzaGornego(); void dodajSchodkarzaDolnego(); void dodajSchodkarzaPoziomego(); void dodajPijusa(); void obsluzGre(); void wypuscLeminga(); void pauza(); void aktualizujCzas(); void jakiOdstep(); void mouseMoveEvent(QMouseEvent* m){ emit jestMysz(); }; void nowaGra(); void gramyOdPoczatku(); void kolejnyEtap(); void przygotuj(); void pokazZasadyGry(); void pokazInformacje(); void zaglada(); void zakonczenie(); protected: void pokazOknoPoczatkowe(); void pokazOknoWejsciaDoEtapu(); void pokazOknoWyjsciaZEtapu(); void rozpocznijKolejnyEtap(); void dodaj(int); void podsumujEtap(); void zakonczEtap(); signals: /* do przesylania informacji do obrazu planszy o nowym elemencie: */ void nowy(Wejscie*); void nowy(Wyjscie*); void nowy(Leming*); void nowy(Bloker*); void nowy(Bomba*); void nowy(SchodkarzGorny*); void nowy(SchodkarzPoziomy*); void nowy(SchodkarzDolny*); void nowy(KopaczSkosnyWGore*); void nowy(KopaczPoziomy*); void nowy(KopaczPionowy*); void nowy(KopaczSkosnyWDol*); void nowy(Pijus*); void usun(ElementSwiata*); void kursor(typ_rodzaj); /* do przesylania informacji do obrazu planszy o polozeniu myszy: */ void jestMysz(); /* aktywowanie odswiezania obrazu planszy: */ void rusz(); void ruszPauza(); }; #endif