Minigames.h 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. #ifndef MiniGames_H
  2. #define MiniGames_H
  3. #include <Fenster.h>
  4. #include <Animation.h>
  5. #include "MiniGame.h"
  6. #include <Thread.h>
  7. #include <Knopf.h>
  8. #include <MiniGameV.h>
  9. #include "DLLDateien.h"
  10. using namespace Framework;
  11. class MiniGames; // aus dieser Datei
  12. class API;
  13. class MGSuchen : private Thread
  14. {
  15. private:
  16. MiniGames * mGames;
  17. public:
  18. // Konstruktor
  19. MGSuchen( MiniGames *mGames );
  20. // Destruktor
  21. ~MGSuchen();
  22. // nicht constant
  23. void thread() override;
  24. };
  25. class MGLaden : private Thread
  26. {
  27. private:
  28. Text * name;
  29. MiniGameV *game;
  30. DLLDateien *dLLs;
  31. API *api;
  32. int ref;
  33. public:
  34. // Konstruktor
  35. MGLaden( char *name, DLLDateien *zDLLs, API *api );
  36. // Destruktor
  37. ~MGLaden();
  38. // nicht constant
  39. void thread();
  40. // constant
  41. bool fertig() const;
  42. MiniGameV *zGame() const;
  43. // Reference Counting
  44. MGLaden *getThis();
  45. MGLaden *release();
  46. };
  47. class MiniGames : public Zeichnung
  48. {
  49. private:
  50. Punkt bildschirmGröße;
  51. LRahmen *rahmen;
  52. RCArray< MiniGame > *games;
  53. MGLaden *mgl;
  54. Schrift *schrift;
  55. DLLDateien *dLLs;
  56. Bildschirm *screen;
  57. API *api;
  58. double tickVal;
  59. int alpha2;
  60. int ref;
  61. public:
  62. // Konstruktor
  63. MiniGames( Schrift *zSchrift, DLLDateien *zDLLs, Bildschirm *zScreen, API *api );
  64. // Destruktor
  65. ~MiniGames();
  66. // nicht constant
  67. void addMiniGame( MiniGame *mg );
  68. void doMausEreignis( MausEreignis &me ) override;
  69. void doTastaturEreignis( TastaturEreignis &te ) override;
  70. bool tick( double z ) override;
  71. void render( Bild &zRObj ) override;
  72. // Reference Counting
  73. MiniGames *getThis();
  74. MiniGames *release();
  75. };
  76. class API : public MinigameAPI
  77. {
  78. private:
  79. WFenster *f;
  80. public:
  81. API( WFenster *wf )
  82. {
  83. f = wf;
  84. }
  85. // legt fest ob das spiel im Vollbildmodus ausgeführt werden soll
  86. void setFullScreenMode( bool enabled )
  87. {
  88. if( enabled )
  89. {
  90. Punkt bildschirmGröße = BildschirmGröße();
  91. bildschirmGröße.x++;
  92. bildschirmGröße.y++;
  93. f->setSize( bildschirmGröße );
  94. f->setPosition( Punkt( 0, 0 ) );
  95. }
  96. else
  97. {
  98. f->setSize( 800, 500 );
  99. }
  100. f->zBildschirm()->setBackBufferSize( f->getGröße() );
  101. f->zBildschirm()->update();
  102. }
  103. };
  104. #endif