Bomb.cpp 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. #include "Bomb.h"
  2. Bomb::Bomb(SDL_Surface *screen, Collisions *gestionnaireCollisons, Sounderer *mediaPlayer, SDL_Surface* apparence)
  3. : Power(screen, gestionnaireCollisons, mediaPlayer, apparence)
  4. {
  5. }///Constructeur
  6. Bomb::~Bomb()
  7. {
  8. }///Destructeur
  9. void Bomb::usePower(int orientation, int &x, int &y, int const &ID)
  10. {
  11. //[0] Bruitage
  12. m_mediaPlayer->play("Bomb");
  13. //[1] Orientation de la trajectoire du Bomb
  14. int posX(x);
  15. int posY(y);
  16. int ajoutX(0);
  17. int ajoutY(0);
  18. convertDir(orientation, ajoutX, ajoutY);
  19. //[2] Parcours du Bomb dans le vide
  20. while (m_gestionnaireCollisions->tester(posX, posY) == VIDE)
  21. {
  22. posX += ajoutX;
  23. posY += ajoutY;
  24. }
  25. posX -= ajoutX;
  26. posY -= ajoutY;
  27. //[3] Boum
  28. for (int i(-2); i<=2; i++)
  29. for (int j(-2); j<=2; j++)
  30. if (i != 0 || j != 0) m_gestionnaireCollisions->ajouter(posX+i, posY+j, ID);
  31. //[END]
  32. m_used = true;
  33. }///usePower
  34. void Bomb::postMortemPower(int const &x, int const &y, int const &ID)
  35. {
  36. //[0] Bruitage
  37. m_mediaPlayer->play("Bomb");
  38. //[1] Explosion de blocs
  39. for (int i(-1); i<=1; i++)
  40. for (int j(-1); j<=1; j++)
  41. if (i != 0 || j != 0) m_gestionnaireCollisions->enlever(x+i, y+j);
  42. //[end]
  43. m_used = true;
  44. }///postMortemPower