#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 */