Balle.h 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. #ifndef BALLE_H_INCLUDED
  2. #define BALLE_H_INCLUDED
  3. #include "Level.h"
  4. #include "../Headers/Vecteur.h"
  5. #include "../Headers/Point.h"
  6. ///Balle.h
  7. ///Date de modification: 8_12_2013
  8. ///Objet: new solution pour collisons: vecteurs normalisés
  9. ///Prochaine étape: debuger le système de collisions
  10. /*
  11. ===La classe Balle===
  12. +Définition:
  13. La classe Balle permet de créer une entité qui rebondit sur les éléments du niveau
  14. et qui peut être dirigée. Cette entité est également soumise à la gravité.
  15. +Méthodes:
  16. - Constructeur:
  17. Permet de renseigner tous les paramètres: rayon, couleur et le niveau en cours.
  18. Le pointeur sur le niveau permet de renseigner le point de spawn, la résistance
  19. et la gravité et le point d'arrivée.
  20. - demarrage:
  21. Active un des 4 propulseurs. Converti ensuite par un vecteur à ajouter à la force totale.
  22. +Arguments: deux entiers, utilisez les define pour nommer la direction du propulseur.
  23. - arret:
  24. Idem, mais le vecteur sera soustré.
  25. +Arguments: deux entiers, utilisez les define pour nommer la direction du propulseur.
  26. - calculMouvement:
  27. Permet d'actualiser la position de la balle. A appeler à intervalles réguliers.
  28. - dessiner:
  29. Permet d'afficher la position de la balle.
  30. *Argument: pointeur sur la surface de collage.
  31. - statutConsole:
  32. Permet d'afficher dans la console les infos et états de variables de la balle.
  33. - respawn:
  34. Permet de remettre la balle au point de départ.
  35. ===La fonction haveBall===
  36. +Définition:
  37. Cette fonction sert à créer une balle dynamiquement à partir d'un pointeur sur niveau
  38. pour la créer avec tous ses attributs constants, indiqués dans le fichier du niveau.
  39. Elle utilise pour cela la fonction lireParametres de Level.h.
  40. +Arguments:
  41. Pointeur sur le niveau en cours.
  42. +Renvoi:
  43. Pointeur sur la balle créée.
  44. */
  45. #define HAUT 0,-1
  46. #define DROITE 1,0
  47. #define BAS 0,1
  48. #define GAUCHE -1,0
  49. class Balle
  50. {
  51. public:
  52. Balle(int rayon, Uint32 couleur, Level* niveau,
  53. int xSpawn,int ySpawn,float resistance,float gravite,int xBut,int yBut);
  54. ~Balle();
  55. void demarrage(short dx, short dy);//à renseigner par define
  56. void arret(short dx, short dy);//idem
  57. void calculMouvement();
  58. void dessiner(SDL_Surface* support);
  59. void statutConsole();
  60. void respawn();
  61. protected:
  62. //Attributs physiques
  63. float const m_puissance;//defaut: 1
  64. float const m_resistance;//defaut: 0.5
  65. Vecteur const m_attraction;//Force extérieure defaut: 1.5
  66. //Attributs vectoriels
  67. Vecteur m_position;//Contient les coordonnées de l'objet
  68. Vecteur m_resultante;//Force finale, force précédente
  69. Vecteur m_traction;//Force totale des propulseurs
  70. Vecteur const m_spawn;
  71. Vecteur const m_arrivee;
  72. //Attribut SDL
  73. SDL_Surface* m_point;
  74. //Attribut de l'environnement
  75. Level* m_niveau;
  76. };
  77. Balle* haveBall(Level* niveau);
  78. #endif // BALLE_H_INCLUDED