#define OBRAZ_PLANSZY /* Plik zawiera deklaracje klasy ObrazPlanszy podklasy klasy ObrazPlanszyAbs. Klasa ta posiada dodatkowo mozliwosc wyswietlania elementow swiata. Odwoluje sie do modulu z klasa ObrazElementuSwiata oraz ElementySwiata. Posiada kolekcje obiektow obrazujacych elementy swiata ktore ma pokazywac (ObrazeElementuSwiata). Zdefiniowana jest w niej obsluga kursora pokazujacego ruszajacy sie obiekt obrazujacy zadany element swiata. Autor: Michal Wiktor Zmijewski (grupa 5) */ #include "naglowki/ObrazPlanszyAbs.h" #include "naglowki/stale_Leming.h" #include "naglowki/ElementySwiata.h" class ObrazPlanszy; typedef int typ_stan; #include "naglowki/ObrazElementuSwiata.h" /* CZESC KONFIGURACYJNA ANIMACJI TERENU DO ODBIORU IMPULSU W OBRAZIEPLANSZY */ /* Nalezy odkomentowac jedna z definicji odpowiadajaca zadanej Animacji:*/ #define ANIMACJA_WYBIURCZA /* kazdy animowany teren za kazdym razem losuje czy ma sie animowac */ //#define ANIMACJA_GRUPOWA /* za kazdym razem jest animowana tylko czesc elementow cyklicznie */ //#define ANIMACJA_DYSKRETNA /* co ktorys odbior impulsu nastepuje animacja wszystkich elementow */ /* wpp brak animacji */ /* definicje typow */ typedef map<ElementSwiata*,ObrazElementuSwiata*> typ_kolekcja_elementow; typedef map<typ_stan,QwSpritePixmapSequence*> typ_anim_stan; typedef map<typ_rodzaj,typ_anim_stan> typ_anim_elementow; /* deklaracja klasy obrazPlanszy */ class ObrazPlanszy : public ObrazPlanszyAbs { Q_OBJECT public: ObrazPlanszy(QWidget* parent=0,const char* name=0, WFlags f=0); ObrazPlanszy(char*,char*,char*,Plansza& plan,QWidget* parent=0, const char* name=0, WFlags f=0); ~ObrazPlanszy(); QwSpritePixmapSequence* animacja(typ_rodzaj rodz,int nr); /* usdostepnia animacje danego elementu swiata */ signals: void wyswietl();/* odbieraja go obrazy elementow swiata */ void wcisnietyKursor(Para,int);/* jest wysylany do interfejsu jesli jest wlaczona obsluga kursora i prawy przycisk myszy zostal wcisniety */ public slots: void odbierzImpuls();/* odswierza rysunek */ void odbierzImpulsPauza();/* odswierza rysunek podczas pauzy */ void nieMaMyszki();/* kursor myszki jest poza widgetem */ void dodajElementSwiata(Wejscie* ); /* metody dodajace obrazy zadanych elementow */ void dodajElementSwiata(Wyjscie* ); void dodajElementSwiata(Leming* ); void dodajElementSwiata(Bloker* ); void dodajElementSwiata(Pijus* ); void dodajElementSwiata(SchodkarzGorny* ); void dodajElementSwiata(SchodkarzDolny* ); void dodajElementSwiata(SchodkarzPoziomy* ); void dodajElementSwiata(KopaczPoziomy* ); void dodajElementSwiata(KopaczPionowy* ); void dodajElementSwiata(KopaczSkosnyWGore* ); void dodajElementSwiata(KopaczSkosnyWDol* ); void dodajElementSwiata(Bomba*); void usunElementSwiata(ElementSwiata* ); /* usuwanie obrazu elementu swiata*/ void kursorRodzaj(typ_rodzaj);/* wlaczenie kursora obrazujacego dany element swiata */ protected slots: void mouseMoveEvent(QMouseEvent*); void mousePressEvent(QMouseEvent*); protected: typ_anim_elementow anim_elementow; /* kolekcja animacji elementow swiata w poszczegolnych stanach */ typ_kolekcja_elementow kolekcja_elementow;/* kolekcja obrazow elementow swiata indeksowana tymi elementami */ ObrazElementuSwiata *kursor; void pobierzAnimacjeElementowSwiata(QWMatrix macierzSkali,QWMatrix macierzOdbicia); /* pobiera animacje elementow swiata w poszczegolnych stanach */ };/* ObrazPlanszy */