#ifndef NIVEAU_H_INCLUDED #define NIVEAU_H_INCLUDED /** Projet: PacMen Programmeur: Jovian Hersemeule Date de dernière modification: 7 fevrier 2014 Objet: ajout attribut m_nomFichier, le constructeur créé un niveau MEME si fichier absent + fonction reset Prochaine étape: */ #include #include #include #include #undef main #define LG_BLOC 30 #define LG_TABL 20 enum axe {Y=0,X=1}; enum bloc {RIEN=0,MUR=1,PLAQUE=2,SPAWN_ALLIE=3,SPAWN_PHANTOM=4}; enum item {VIDE=0,STEACK=1,TONNEAU=2}; class Niveau { public: Niveau();//Niveau vide Niveau(std::string nomFichier, Uint16 fraction = 0);//Appelle automatiquement creer() ~Niveau(); //Fonctions générales int peindreFont(Uint16 fraction); bool creer(std::string nomFichier, Uint16 fraction = 0);//Charge un niveau void afficher(SDL_Surface* support, bool hideItem=0);//Coller les surfaces de terrain (et les items si besoin) //Fonctions de jeu void remplirItems();//Pose les steaks par terre short typeBloc(int x, int y, bool coordonee = 0);//Tester la présence d'un mur (coordonnee true si x et y en nb de pixels) short takeItem(int x, int y, bool coordonee = 0);//Tester la présence d'un item int itemsRestants();//Renvoie le nombre d'items (tonneaux et stecks cofondus) restants int popFantom(axe choisi);//Utiliser l'enum pour choisir entre abscisse ou ordonnée int popAllie(axe choisi);//Exemple: int x = popAllie(X); int getEffectifMobs();//Retourne le nombre de fantômes du niveau //Fonctions d'édition std::string getNom();//Retourne l'appellation du niveau void save(int effectifPhantom);//Sauvegarde le niveau dans le fichier void placeBloc(short blocChoisi, int x, int y, Uint32 couleur, bool coordonee = 0);//Modifie un bloc dans le niveau void reset();//Recouvre en totzlité le niveau de pierre private: SDL_Surface* m_font; SDL_Surface* m_items; std::string m_nom; std::string m_nomFichier; int m_lvlNumber; short m_itemTabl[LG_TABL][LG_TABL];//[y;x] short m_tabl[LG_TABL][LG_TABL];//[y;x] int m_effectifItems; short m_effectifMobs;//Se manifeste dans .txt par un nombre négatif, valeur absolue = nb mobs int m_spawnPhantom[2];//y x int m_spawnAllie[2];//y x }; #endif // NIVEAU_H_INCLUDED