Tunnel.cpp 1.3 KB

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