Laser.h 947 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #ifndef Laser_H
  2. #define Laser_H
  3. #include <Vec2.h>
  4. #include <Bild.h>
  5. #include <Welt2D.h>
  6. using namespace Framework;
  7. class Karte;
  8. class Laser : public Object2D
  9. {
  10. private:
  11. struct SaveData
  12. {
  13. Vertex pos;
  14. Vertex speed;
  15. double intensity;
  16. };
  17. int id;
  18. double intensität;
  19. double startIntensität;
  20. int tf;
  21. int sNum;
  22. SaveData last;
  23. // privat
  24. char getOutCode( Punkt& p, Bild &zrObj ) const;
  25. public:
  26. // Konstruktor
  27. Laser( int id, Vertex pos, Vertex speed, int sNum, double intensität, int tf );
  28. // nicht constant
  29. Rect2< float > getBoundingBox() const;
  30. bool tick( const WeltInfo &info, double tv ) override;
  31. void render( Mat3< float > &kamMat, Bild &zRObj, const char *kamName ) override;
  32. void save();
  33. void load();
  34. // constant
  35. int getId() const;
  36. int getSpieler() const;
  37. double getIntensität( Vertex targetSpeed ) const;
  38. // Reference Counting
  39. Laser *getThis();
  40. Laser *release();
  41. };
  42. #endif