Trender.cpp 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. #include "Trender.h"
  2. Trender::Trender(SDL_Surface *screen, Collisions *gestionnaireCollisons, Sounderer *mediaPlayer, SDL_Surface* apparence)
  3. : Power(screen, gestionnaireCollisons, mediaPlayer, apparence)
  4. {
  5. }///Constructeur
  6. Trender::~Trender()
  7. {
  8. }///Destructeur
  9. void Trender::usePower(int orientation, int &x, int &y, int const &ID)
  10. {
  11. //[0] Bruitage
  12. m_mediaPlayer->play("Trender");
  13. //[1] Orientation de la trajectoire du Trender
  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 Trender dans le vide
  20. while (m_gestionnaireCollisions->tester(posX,posY) == VIDE)
  21. {
  22. posX += ajoutX;
  23. posY += ajoutY;
  24. }
  25. //[3] Traverse de toute l'épaisseur
  26. while (m_gestionnaireCollisions->tester(posX, posY) != VIDE)
  27. {
  28. posX += ajoutX;
  29. posY += ajoutY;
  30. }
  31. //[4] Ajoute une ligne
  32. for ( int i(0); i < 6; i++ )
  33. {
  34. m_gestionnaireCollisions->ajouter(posX, posY, ID);
  35. posX += ajoutX;
  36. posY += ajoutY;
  37. }
  38. //[END]
  39. m_used = true;
  40. }///usePower
  41. void Trender::postMortemPower(int const &x, int const &y, int const &ID)
  42. {
  43. //[0] Bruitage
  44. m_mediaPlayer->play("Trender");
  45. //[1] Explosion de blocs
  46. for (int i(-1); i<=1; i++)
  47. for (int j(-1); j<=1; j++)
  48. if (i != 0 || j != 0) m_gestionnaireCollisions->ajouter(x+i, y+j, ID);
  49. //[end]
  50. m_used = true;
  51. }///postMortemPower