Geschoss.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #pragma once
  2. #include "GameObject.h"
  3. #include "Spieler.h"
  4. class Spiel;
  5. #define PFEIL_DAMAGE 100
  6. #define KUGEL_DAMAGE 100
  7. class Geschoss : public GameObject
  8. {
  9. private:
  10. float speed;
  11. Richtung richtung;
  12. Spieler *besitzer;
  13. GeschossTyp typ;
  14. int tunnelBenutzt;
  15. int umgelenkt;
  16. int geschosseGetroffen;
  17. int schalter;
  18. int currentImage;
  19. double nextImage;
  20. bool intersectWithOwner;
  21. int id;
  22. ResourceRegistry *resources;
  23. public:
  24. Geschoss( ResourceRegistry *zResources, int id, float speed, GeschossTyp typ, Richtung r, int x, int y, Spieler *besitzer );
  25. ~Geschoss();
  26. void invertDirection();
  27. void addUmlenkung( Spiel *zSpiel );
  28. void addGeschossTreffer( Spiel *zSpiel );
  29. void addTunnel( Spiel *zSpiel );
  30. void addSchalter();
  31. void setSpeed( float speed );
  32. void setBesitzer( Spieler *besitzer );
  33. void setTyp( GeschossTyp typ );
  34. void setRichtung( Richtung r );
  35. void tick( double zeit );
  36. bool intersectsWith( GameObject *zObj ) override;
  37. GeschossTyp getTyp() const;
  38. Spieler *zBesitzer() const;
  39. Spieler *getBesitzer() const;
  40. Richtung getRichtung() const;
  41. };
  42. // size: 150x150
  43. class FeuerballTreffer : public GameObject
  44. {
  45. private:
  46. int id;
  47. Spieler *besitzer;
  48. int count;
  49. float timeLeft;
  50. Resource *animation;
  51. int currentImage;
  52. double nextImage;
  53. public:
  54. FeuerballTreffer( ResourceRegistry *zResources, int id, int x, int y, Spieler *besitzer, int maxZeit );
  55. ~FeuerballTreffer();
  56. void tick( double zeit );
  57. bool isOver() const;
  58. bool makeDamage() const;
  59. Spieler *zVerursacher() const;
  60. };