Animation.h 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. #ifndef Animation_H
  2. #define Animation_H
  3. #include "Zeichnung.h"
  4. namespace Framework
  5. {
  6. class Bild; // Bild.h
  7. class LTDBDatei; // DateiSystem.h
  8. class InitDatei; // InitDatei.h
  9. class LRahmen; // Rahmen.h
  10. class Animation2DData
  11. {
  12. private:
  13. Bild **bilder;
  14. int bildAnzahl;
  15. int fps;
  16. bool wiederhohlen;
  17. bool transparent;
  18. CRITICAL_SECTION cs;
  19. int ref;
  20. public:
  21. // Konstruktor
  22. __declspec( dllexport ) Animation2DData();
  23. // Destruktor
  24. __declspec( dllexport ) ~Animation2DData();
  25. // nicht constant
  26. __declspec( dllexport ) void lock();
  27. __declspec( dllexport ) void unlock();
  28. __declspec( dllexport ) void ladeAnimation( InitDatei *datei );
  29. __declspec( dllexport ) void ladeAnimation( LTDBDatei *datei );
  30. __declspec( dllexport ) void setFPS( int fps );
  31. __declspec( dllexport ) void setWiederhohlend( bool wh );
  32. __declspec( dllexport ) void setTransparent( bool trp );
  33. __declspec( dllexport ) void reset();
  34. // constant
  35. __declspec( dllexport ) Bild *getBild( int i ) const;
  36. __declspec( dllexport ) Bild *zBild( int i ) const;
  37. __declspec( dllexport ) int getBildAnzahl() const;
  38. __declspec( dllexport ) int getFPS() const;
  39. __declspec( dllexport ) bool istWiederhohlend() const;
  40. __declspec( dllexport ) bool istTransparent() const;
  41. // Reference Counting
  42. __declspec( dllexport ) Animation2DData *getThis();
  43. __declspec( dllexport ) Animation2DData *release();
  44. };
  45. class Animation2D : public Zeichnung
  46. {
  47. private:
  48. Animation2DData *data;
  49. int jetzt;
  50. double ausgleich;
  51. unsigned char alpha;
  52. unsigned char maxAlpha;
  53. bool rahmen;
  54. LRahmen *ram;
  55. int aps;
  56. bool sichtbar;
  57. bool rend;
  58. int ref;
  59. public:
  60. // Konstruktor
  61. __declspec( dllexport ) Animation2D();
  62. // Destruktor
  63. __declspec( dllexport ) ~Animation2D();
  64. // nicht constant
  65. __declspec( dllexport ) void setRahmen( bool ram );
  66. __declspec( dllexport ) void setRahmenZ( LRahmen *ram );
  67. __declspec( dllexport ) void setRahmenBreite( int br );
  68. __declspec( dllexport ) void setRahmenFarbe( int fc );
  69. __declspec( dllexport ) void setAnimationDataZ( Animation2DData *data );
  70. __declspec( dllexport ) void setAlphaMaske( unsigned char alpha );
  71. __declspec( dllexport ) void setAPS( int aps );
  72. __declspec( dllexport ) void setSichtbar( bool sichtbar );
  73. __declspec( dllexport ) bool tick( double zeit ) override;
  74. __declspec( dllexport ) void render( Bild &zRObj ) override;
  75. // constant
  76. __declspec( dllexport ) Animation2DData *getAnimationData() const;
  77. __declspec( dllexport ) Animation2DData *zAnimationData() const;
  78. __declspec( dllexport ) bool istSichtbar() const;
  79. __declspec( dllexport ) int getJetzt() const;
  80. __declspec( dllexport ) unsigned char getAlphaMaske() const;
  81. __declspec( dllexport ) bool hatRahmen() const;
  82. __declspec( dllexport ) LRahmen *getRahmen() const;
  83. __declspec( dllexport ) LRahmen *zRahmen() const;
  84. __declspec( dllexport ) int getRahmenBreite() const;
  85. __declspec( dllexport ) int getRahmenFarbe() const;
  86. __declspec( dllexport ) Zeichnung *dublizieren() const override;
  87. // Reference Counting
  88. __declspec( dllexport ) Animation2D *getThis();
  89. __declspec( dllexport ) Animation2D *release();
  90. };
  91. }
  92. #endif