#include "gestionnaireNiveaux.h" GestionnaireNiveaux::GestionnaireNiveaux(SDL_Surface *screen): m_pageActuelle(0),m_estChoisi(false),m_choixJoueur("nothings"),m_screen(screen) { ///[1] Création des boutons //[1.1] Changement de pages m_pagePrecedente = new Bouton(SDL_LoadBMP("Images/gauche.bmp"), screen, 320-154, 440); m_pageSuivante = new Bouton(SDL_LoadBMP("Images/droite.bmp"), screen, 320, 440); //[1.2] Niveaux for (int i(0); icalculer(xSouris,ySouris)) { m_font=m_apercu[i]; selectOk=true; } } if (!selectOk)//Rien de seelctionné ! m_font=0; }///calculer(int const xSouris, int const ySouris) void GestionnaireNiveaux::afficher() { ///[1] Affichage des boutons //[1.0] Font SDL_Rect positionZero; positionZero.x=positionZero.y=0; if (m_font!=0) SDL_BlitSurface(m_font,0,m_screen,&positionZero); //[1.1] Changeurs de pages m_pagePrecedente->afficher(); m_pageSuivante->afficher(); //[1.2] Niveaux for (int i(0); iafficher(); } }///afficher(SDL_Surface* screen) void GestionnaireNiveaux::clic(int const xSouris, int const ySouris) { ///Teste tous les boutons, si un bouton est cliqué, ///appelez nomDuFichier puis modifier m_choixJoueur et m_estChoisi //[1] Test du tableau de boutons for (Uint8 i(0); iestClique(xSouris,ySouris)) { std::cout << "Clic, niveau choisi: " << nomDuFichier(i) << std::endl; if (m_apercu[i]!=0) { m_estChoisi=true; m_choixJoueur=nomDuFichier(i); } else std::cout << nomDuFichier(i) << " n'existe pas. Reste au menu. " << std::endl; } } //[2] Tests des boutons de chgmt de page if (m_pageSuivante->estClique(xSouris,ySouris)) allerALaPage(m_pageActuelle+1); else if (m_pagePrecedente->estClique(xSouris,ySouris) && m_pageActuelle>0) allerALaPage(m_pageActuelle-1); }///clic(int const xSouris, int const ySouris) bool GestionnaireNiveaux::estChoisi() { return m_estChoisi; }///estChoisi() std::string GestionnaireNiveaux::getChoix() { return m_choixJoueur; }///getChoix() /**---------------------------------FONCTIONS INTERNES---------------------------------**/ void GestionnaireNiveaux::reinitialiserPage() { for (int i(0); igetNom(); m_apercu[i]=SDL_CreateRGBSurface(SDL_HWSURFACE,640,480,16,0,0,0,0); maquette->afficher(m_apercu[i]); SDL_SetColorKey(m_apercu[i],SDL_SRCCOLORKEY,SDL_MapRGB(m_apercu[i]->format,0,0,0)); delete maquette; } } //[3] Collage des textes ! SDL_Surface* texte[NB_BOUTONS]; SDL_Rect position; position.x=20; position.y=4; SDL_Rect positionB; positionB.x=position.x+2; positionB.y=position.y+1; SDL_Color bleu={0,0,200}; for (int i(0); iattribuerImg(surbrillance[i]); } //[5] On nettoie les déchets for (int i(0); i