DisplayHP.cpp 934 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #include "DisplayHP.h"
  2. DisplayHP::DisplayHP( int vieMax, Uint32 front, Uint32 back, Vec up )
  3. :Affichable( 0x0 ), m_vieMax( vieMax ), m_front( front ), m_back( back ), m_up( up ), m_vie()
  4. {
  5. /// Création de la surface de barre de vie
  6. cadrer();
  7. /// Remplissage
  8. m_vie.h = BARRE_EPAIS;
  9. m_vie.w = vieMax;
  10. SDL_FillRect(m_img, 0x0, m_front);
  11. }
  12. DisplayHP::~DisplayHP()
  13. {
  14. SDL_FreeSurface( m_img );
  15. }
  16. void DisplayHP::updateImg( const int &vie )
  17. {
  18. m_vie.w = vie;
  19. SDL_FillRect(m_img, 0x0, m_back);
  20. SDL_FillRect(m_img, &m_vie, m_front);
  21. }
  22. void DisplayHP::IAmHere( const Vec &pos )
  23. {
  24. m_pos = m_up + pos;
  25. }
  26. void DisplayHP::setMax( int max )
  27. {
  28. if (m_vieMax != max)
  29. {
  30. m_vieMax = max;
  31. cadrer();
  32. }
  33. }
  34. void DisplayHP::cadrer()
  35. {
  36. if ( m_img ) SDL_FreeSurface( m_img );
  37. m_img = SDL_CreateRGBSurface( SDL_HWSURFACE, m_vieMax, BARRE_EPAIS, 32, 0, 0, 0, 0 );
  38. }