12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- #include "Trender.h"
- Trender::Trender(SDL_Surface *screen, Collisions *gestionnaireCollisons, Sounderer *mediaPlayer, SDL_Surface* apparence)
- : Power(screen, gestionnaireCollisons, mediaPlayer, apparence)
- {
- }///Constructeur
- Trender::~Trender()
- {
- }///Destructeur
- void Trender::usePower(int orientation, int &x, int &y, int const &ID)
- {
- //[0] Bruitage
- m_mediaPlayer->play("Trender");
- //[1] Orientation de la trajectoire du Trender
- int posX(x);
- int posY(y);
- int ajoutX(0);
- int ajoutY(0);
- convertDir(orientation, ajoutX, ajoutY);
- //[2] Parcours du Trender dans le vide
- while (m_gestionnaireCollisions->tester(posX,posY) == VIDE)
- {
- posX += ajoutX;
- posY += ajoutY;
- }
- //[3] Traverse de toute l'épaisseur
- while (m_gestionnaireCollisions->tester(posX, posY) != VIDE)
- {
- posX += ajoutX;
- posY += ajoutY;
- }
- //[4] Ajoute une ligne
- for ( int i(0); i < 6; i++ )
- {
- m_gestionnaireCollisions->ajouter(posX, posY, ID);
- posX += ajoutX;
- posY += ajoutY;
- }
- //[END]
- m_used = true;
- }///usePower
- void Trender::postMortemPower(int const &x, int const &y, int const &ID)
- {
- //[0] Bruitage
- m_mediaPlayer->play("Trender");
- //[1] Explosion de blocs
- for (int i(-1); i<=1; i++)
- for (int j(-1); j<=1; j++)
- if (i != 0 || j != 0) m_gestionnaireCollisions->ajouter(x+i, y+j, ID);
- //[end]
- m_used = true;
- }///postMortemPower
|