Level.h 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. #ifndef LEVEL_H_INCLUDED
  2. #define LEVEL_H_INCLUDED
  3. ///Modifié le: 15/10/2013
  4. ///Objet: afficher spawn et but
  5. ///à faire:
  6. #include "../Headers/transform.h"
  7. #include "../Headers/Point.h"
  8. #include <fstream>
  9. /*
  10. ===La classe Level===
  11. +Définition:
  12. La classe Level permet de créer un niveau de gravitation game. Il se caractérise par le
  13. numéro du niveau, le nom du niveau et un tableau de int.
  14. +Fonctions:
  15. -Constructeur standard:
  16. Permet d'instaurer tous les paramètres. Utilisez plutôt la fonction haveLevel.
  17. -setBloc:
  18. Permet de remplir une case du niveau. Utiliser pour cela les define.
  19. Arguments: Deux entiers de position en pixels, plus le bloc à rajouter.
  20. -save:
  21. Utilisé lors de l'édition de niveau, ou pour sauvegarder une réussite (à faire).
  22. Permet de sauvegarder le niveau dans son intégralité.
  23. Arguments: deux entiers coordonnées spawn, deux entiers coordonnées but.
  24. -getBloc:
  25. Permet de connaitre la nature du bloc.
  26. Arguments: Deux entiers de position en pixels.
  27. -afficher:
  28. Permet d'afficher le niveau.
  29. -getNom:
  30. Permet de connaître le nom du niveau, lu dans le fichier.
  31. Renvoi: string contenant le nom du niveau.
  32. -lireParamètres:
  33. Permet à la balle de connaître tous les éléments de son environnement.
  34. Arguments de réference: int XetY spawn, floats resistance et gravité, int XetY but
  35. ===Le fonction haveLevel===
  36. +Définition:
  37. Permet de lire un fichier niveau. Pour cela, il faut un string contenant le nom du fichier
  38. et la fonction retourne un niveau. :-)
  39. Arguments: string nom de niveau
  40. Renvoi: un objet de type Level
  41. */
  42. #define NB_BLOC_HORIZON 32
  43. #define NB_BLOC_VERTI 24
  44. #define LG_BLOC 20
  45. #define RIEN 0
  46. #define BLOC 1
  47. #define BUMPER 2
  48. #define PLANCHE 3//à venir
  49. //Changer le NB_BLOCS et implémenter le constructeur à chaque ajout d'élément
  50. #define NB_BLOCS 3
  51. class Level
  52. {
  53. public:
  54. Level(std::string nom, int numero, int tableau[NB_BLOC_VERTI][NB_BLOC_HORIZON]=0);
  55. ~Level();
  56. //Fonctions d'édition
  57. void setBloc(int x, int y, int typeBloc);
  58. void save(int xSpawn, int ySpawn, int xBut, int yBut);
  59. //Fonctions de jeu
  60. int getBloc(int x, int y);
  61. void afficher(SDL_Surface *screen);
  62. std::string const getNom();
  63. //Fonction d'acquisition des paramètres
  64. void lireParametres(int &xSpawn,int &ySpawn,float &resistance,float &gravite,int &xBut,int &yBut);
  65. private:
  66. //Attributs standards:
  67. int m_tableau[NB_BLOC_VERTI][NB_BLOC_HORIZON];
  68. std::string const m_nom;
  69. int const m_numero;
  70. bool m_reussi;
  71. //Attributs SDL:
  72. SDL_Surface* m_titre;
  73. SDL_Surface* m_bloc[NB_BLOCS];//ATTENTION !!! Rien = 0 !
  74. SDL_Rect m_posBut;
  75. SDL_Surface* m_but;
  76. SDL_Rect m_posSpawn;
  77. SDL_Surface* m_spawn;
  78. };
  79. Level* haveLevel(std::string nomFichier);
  80. #endif // LEVEL_H_INCLUDED