Boost.cpp 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #include "Boost.h"
  2. Boost::Boost(SDL_Surface *screen, Collisions *gestionnaireCollisons, Sounderer *mediaPlayer, SDL_Surface* apparence)
  3. : Power(screen, gestionnaireCollisons, mediaPlayer, apparence)
  4. {
  5. }///Constructeur
  6. Boost::~Boost()
  7. {
  8. }///Destructeur
  9. void Boost::usePower(int orientation, int &x, int &y, int const &ID)
  10. {
  11. //[0] Bruitage
  12. m_mediaPlayer->play("Boost");
  13. //[1]Préparation de l'orientation du bond
  14. int ajoutX(0);
  15. int ajoutY(0);
  16. convertDir(orientation, ajoutX, ajoutY);
  17. bool sboum(false);
  18. //[2]Bond
  19. for (int i(0); i<6; i++)
  20. {
  21. if (m_gestionnaireCollisions->tester(x, y) != VIDE || sboum)
  22. {
  23. if (!sboum)
  24. {
  25. x -= ajoutX;
  26. y -= ajoutY;
  27. }
  28. sboum = true;
  29. }
  30. else
  31. {//Si pas de mur rencontré
  32. m_gestionnaireCollisions->ajouter(x, y, ID);
  33. x += ajoutX;
  34. y += ajoutY;
  35. }
  36. }
  37. //[END]
  38. m_used = true;
  39. }///usePower
  40. void Boost::postMortemPower(int const &x, int const &y, int const &ID)
  41. {
  42. //[0] Bruitage
  43. m_mediaPlayer->play("Boost");
  44. //[1] Etalage
  45. int portee(2);
  46. for (int i(-portee); i <= portee; i++)
  47. if ( i != 0 )
  48. m_gestionnaireCollisions->ajouter(x, y+i, ID);
  49. for (int i(-portee); i <= portee; i++)
  50. if ( i != 0 )
  51. m_gestionnaireCollisions->ajouter(x+i, y, ID);
  52. m_used = true;
  53. }///postMortemPower