Shot.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #ifndef SHOT_H
  2. #define SHOT_H
  3. #include <iostream>
  4. #include <cmath>
  5. // SDL
  6. #include <SDL.h>
  7. #undef main
  8. #include <SDL/SDL_gfxPrimitives.h>
  9. /**
  10. Jovian Hersemeule
  11. Description du Shot :
  12. La classe shot contient toutes les infos à propos du tir : dégâts, positions.
  13. C'est une classe abstraite dont héritent les différents projectiles ( missiles, lasers, ..).
  14. **/
  15. class Shot
  16. {
  17. /// Méthodes
  18. public:
  19. Shot();
  20. Shot( Sint32 degat, bool ally = false );
  21. Shot( Sint32 degat, Sint16 x, Sint16 y, bool ally = false ); // Set les positons coin haut gauche
  22. virtual ~Shot();
  23. bool isIn( const SDL_Rect& hitbox );
  24. bool getIsAlly();
  25. bool getExist();
  26. void setExist( bool exist );
  27. virtual Sint32 takeDegat();
  28. virtual void update() = 0;
  29. virtual void draw( SDL_Surface* screen ) = 0;
  30. virtual bool damageSolid( Uint8** solid, const Uint16 dimH, const Uint16 dimW, const SDL_Rect& hitbox ) = 0;
  31. protected:
  32. bool damageBloc( Uint8** solid, const Uint16 dimH, const Uint16 dimW, const Uint16 y, const Uint16 x, const Uint8 bam);
  33. /// Attributs
  34. protected:
  35. Sint16 m_x; // Position du centre du tir
  36. Sint16 m_y;
  37. Sint32 m_degat;
  38. bool m_ally;
  39. bool m_exist;
  40. };
  41. #endif // SHOT_H