Welt2D.h 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #pragma once
  2. #include "Array.h"
  3. #include "Punkt.h"
  4. namespace Framework
  5. {
  6. class Model2D; // Model2D.h
  7. struct MausEreignis;
  8. struct TastaturEreignis;
  9. class Bild;
  10. class Welt2D
  11. {
  12. public:
  13. class Style
  14. {
  15. public:
  16. const static __int64 HORIZONTAL_UNENDLICH = 0x0001; // Zeichnunge die rechts austreten erscheinen links wieder und umgekehrt
  17. const static __int64 VERTIKAL_UNENDLICH = 0x0002; // Zeichnunge die unten austreten erscheinen oben wieder und umgekehrt
  18. const static __int64 BEI_VERLASSEN_LÖSCHEN = 0x0004; // Entfernt Zeichnunge, die die Welt an den Rändern verlassen
  19. const static __int64 HINTERGRUND_BENUTZEN = 0x0008; // Legt fest ob es eine seperate Liste mit HintergrundZeichnungen gibt
  20. const static __int64 HINTERGRUND_EREIGNISSE = 0x0010; // Legt festm ob die HintergrundZeichnunge Benutzereingaben empfangen
  21. const static __int64 HINTERGRUND_TICK = 0x0020; // Legt fest, ob der Hintergrund annimerbar ist
  22. };
  23. private:
  24. RCArray< Model2D > *obj;
  25. int style;
  26. int ref;
  27. public:
  28. // Konstruktor
  29. Welt2D();
  30. // Destruktor
  31. ~Welt2D();
  32. // nicht constant
  33. void addModel( Model2D *obj );
  34. void removeModel( Model2D *zObj );
  35. void setModelInVordergrund( Model2D *zObj );
  36. void setModelInHintergrund( Model2D *zObj );
  37. void removeAll();
  38. void doMausEreignis( MausEreignis &me );
  39. void doTastaturEreignis( TastaturEreignis &me );
  40. bool tick( double t );
  41. void render( Bild &zRObj, Punkt &wPos, Punkt &wGr, Punkt &kamGr );
  42. // constant
  43. int getModelAnzahl() const;
  44. Model2D *getModel( int z ) const;
  45. Model2D *zModel( int z ) const;
  46. // Reference Counting
  47. Welt2D *getThis();
  48. Welt2D *release();
  49. };
  50. }