#ifndef GESTIONNAIRENIVEAUX_H_INCLUDED #define GESTIONNAIRENIVEAUX_H_INCLUDED #include #include "Bouton.h" #include "transform.h"//Pour les aperçus #include "../Niveau.h" ///GestionnaireNiveaux.h ///Date de modification: 03_02_2014 ///Objet: adaptation au projet PacMen, placement des boutons ///Prochaine étape: nouvelles textures pour l'interface #define NB_BOUTONS 16 /* ===La classe GestionnaireNiveaux=== +Définition: Elle permet d'afficher les niveaux disponibles, sous forme d'icones. Elle donne le nom du fichier du niveau choisi par le joueur utilisé par la fonction jeu par la suite. Le gestionnaire Niveaux affiche seize icones représentant chacune un niveau, deux boutons pour changer de page. +Méthodes: - Constructeur: Permet de créer le gestionnaire en donnant la surface d'écran. - calculer: Permet de renseigner les coordonnées de la souris pour mettre en surbrillance les boutons. - afficher: Permet d'afficher l'interface des niveaux. - clic: Lorsqu'un clic se déclenche, permet de donner sa position. - estChoisi: Retourne vrai dès que l'utilisateur a choisi un niveau. - getChoix: Retourne dans un string le nom du fichier niveau à lancer. - {PROTECTED} allerALaPage: Permet de charger une page lorsque le bouton est utilisé. Géré en interne. - {PROTECTED} nomDuFichier: Permet de connaître le nom du fichier d'un élément du tableau en lui filant l'identifiant. */ class GestionnaireNiveaux { public: GestionnaireNiveaux(SDL_Surface *screen); ~GestionnaireNiveaux(); void calculer(int const xSouris, int const ySouris); void afficher(); void clic(int const xSouris, int const ySouris); bool estChoisi(); std::string getChoix(); protected: //Fonctions internes void reinitialiserPage(); void allerALaPage(Uint32 numeroPage); std::string nomDuFichier(Uint8 IDTab); private: Bouton* m_tableauBoutons[NB_BOUTONS]; SDL_Surface* m_apercu[NB_BOUTONS]; SDL_Surface* m_font; Bouton* m_pagePrecedente; Bouton* m_pageSuivante; Uint32 m_pageActuelle; bool m_estChoisi; std::string m_choixJoueur; SDL_Surface* m_screen; }; #endif // GESTIONNAIRENIVEAUX_H_INCLUDED