#ifndef POWER_H_INCLUDED #define POWER_H_INCLUDED #include #include "Collisions.h" #include "SpriteLoader.h" #include "Sounderer.h" /** \brief Power * \last Surface donnée * \next */ /** \brief TableauPower * \last Ajuster le nombre de pouvoirs à volonté * \next Ajouter le Trender */ class Power { public: //Fonctions pour le tableau Power(SDL_Surface *screen, Collisions *gestionnaireCollisons, Sounderer *mediaPlayer, SDL_Surface* apparence); virtual ~Power(); void attribuer(); //Fonctions pour le joueur virtual void usePower(int orientation, int &x, int &y, int const &ID) = 0; virtual void postMortemPower(int const &x, int const &y, int const &ID) = 0; //Pour les deux void afficher(int x, int y); bool estUtilise(); bool estPose(); protected: void convertDir(int orientation, int &ajoutX, int &ajoutY) const; protected: SDL_Surface *m_screen; SDL_Surface *m_image; SDL_Rect m_position; Collisions *m_gestionnaireCollisions; Sounderer *m_mediaPlayer; bool m_used; bool m_estPose; }; class TableauPower { public: TableauPower(SDL_Surface *screen, Collisions *gestionnaireCollisons, int nbPow ); ~TableauPower(); Power* chercherPouvoir(int x, int y) const; Power* randomPower(); void initialiser(); void actualiser(); // Nettoie les pouvoirs plus utilisés void afficher(); void bruiterMort(); private: SDL_Surface *m_screen; Collisions *m_gestionnaireCollisions; SpriteLoader *m_spriteGet; Sounderer *m_mediaPlayer; const int m_nbPow; Power** m_tableau; int* m_positions[2];//[coordonnee][id power] }; #include "powers/Boost.h" #include "powers/Expansion.h" #include "powers/Missile.h" #include "powers/Teleport.h" #include "powers/Bouclier.h" #include "powers/Trender.h" #include "powers/Tunnel.h" #include "powers/Bomb.h" #endif // POWER_H_INCLUDED