Kam2D.h 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. #pragma once
  2. #include "Zeichnung.h"
  3. #include "Array.h"
  4. namespace Framework
  5. {
  6. class Welt2D; // Welt2D.h
  7. struct MausEreignis;
  8. struct TastaturEreignis;
  9. enum KamAnimationTyp
  10. {
  11. WeltGröße,
  12. ScrollIn,
  13. ScrollOut,
  14. MoveKam
  15. };
  16. struct KamAnimation
  17. {
  18. KamAnimationTyp typ;
  19. double w1;
  20. double w2;
  21. double sek;
  22. };
  23. class Kam2D : public ZeichnungHintergrund
  24. {
  25. public:
  26. class Style : public ZeichnungHintergrund::Style
  27. {
  28. public:
  29. const static __int64 TASTATUR_MOVE = 0x001000;
  30. const static __int64 MAUS_MOVE = 0x002000;
  31. const static __int64 WELT_EREIGNISSE = 0x004000;
  32. const static __int64 WELT_TICK = 0x008000;
  33. };
  34. private:
  35. Welt2D *welt;
  36. Vec2< double > wGr;
  37. Punkt maxWGr;
  38. Vec2< double > wPos;
  39. Punkt mausPos;
  40. Array< KamAnimation* > *animations;
  41. int ref;
  42. public:
  43. // Konstruktor
  44. Kam2D();
  45. // Destruktor
  46. ~Kam2D();
  47. // nicht constant
  48. void setWelt( Welt2D *welt );
  49. void setMaxWeltGröße( int br, int hö );
  50. void setWeltGröße( int x, int y, int sek );
  51. void scrollIn( int scroll, int sek );
  52. void scrollOut( int scroll, int sek );
  53. void moveKam( int x, int y, int sek );
  54. void finishAnimation();
  55. void clearAnimation();
  56. bool tick( double t ) override;
  57. void doMausEreignis( MausEreignis &me ) override;
  58. void doTastaturEreignis( TastaturEreignis &te ) override;
  59. void render( Bild &rObj ) override;
  60. // constant
  61. Welt2D *zWelt() const;
  62. Welt2D *getWelt() const;
  63. double getWeltX() const;
  64. double getWeltY() const;
  65. double getWeltBr() const;
  66. double getWeltHö() const;
  67. // Reference Counting
  68. Kam2D *getThis();
  69. Kam2D *release();
  70. };
  71. }