Anim_Boucle.cpp 970 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #include "Anim_Boucle.h"
  2. Anim_Boucle::Anim_Boucle(Uint32 tempsFrequence)
  3. :Animation(tempsFrequence)
  4. {
  5. std::cout << "Construction de boucle appelée." << std::endl;
  6. }///Constructeur
  7. Anim_Boucle::~Anim_Boucle()
  8. {
  9. //à enlever
  10. while (!m_bande.empty())
  11. {
  12. if (m_bande.back()!=0)
  13. SDL_FreeSurface(m_bande.back());
  14. m_bande.pop_back();
  15. }
  16. }///Destructeur
  17. void Anim_Boucle::coller(SDL_Surface* support, int x, int y, bool centrer)
  18. {
  19. //[1] Détérmination de l'image active
  20. SDL_Surface* imageActive;
  21. imageActive=m_bande[((SDL_GetTicks()-m_tempsDepart)/m_tempsFrequence)%m_bande.size()];
  22. //[2] Cadrage de l'image
  23. SDL_Rect position;
  24. if (centrer)
  25. {
  26. position.x=x-imageActive->w/2;
  27. position.y=y-imageActive->h/2;
  28. }
  29. else
  30. {
  31. position.x=x;
  32. position.y=y;
  33. }
  34. //[3] Collage de l'image active
  35. SDL_BlitSurface(imageActive, 0, support, &position);
  36. }///coller