enemyManager.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /*
  2. Copyright (C) 2015 Marien Raat
  3. This program is free software: you can redistribute it and/or modify
  4. it under the terms of the GNU General Public License as published by
  5. the Free Software Foundation, either version 3 of the License, or
  6. (at your option) any later version.
  7. This program is distributed in the hope that it will be useful,
  8. but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  10. GNU General Public License for more details.
  11. You should have received a copy of the GNU General Public License
  12. along with this program. If not, see <http://www.gnu.org/licenses/>.
  13. */
  14. #pragma once
  15. #include <SFML/Graphics.hpp>
  16. #include <random>
  17. #include <enemy.h>
  18. #include <player.h>
  19. #if defined(_WIN32) || defined(WIN32) || defined(__WIN32__)
  20. #define OS_WIN
  21. #endif
  22. #define PI 3.1415926535897932384
  23. class EnemyManager {
  24. public:
  25. EnemyManager(sf::Vector2u screenSize);
  26. bool update(Player *player);
  27. void draw(sf::RenderWindow *window);
  28. Enemy *enemies;
  29. private:
  30. static const int ammountOfEnemies = 30;
  31. sf::Vector2u screenSize;
  32. sf::Texture *textures;
  33. #ifndef OS_WIN
  34. std::random_device *randomDevice;
  35. #endif
  36. std::mt19937 *mt;
  37. std::uniform_int_distribution<int> upOrDown,
  38. xValueDist, yValueDist;
  39. std::uniform_real_distribution<double> *rotationD;
  40. std::uniform_real_distribution<double> *radius;
  41. void createNewEnemyAt(int index);
  42. };