Nav apraksta
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

debuggers.h 2.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. #ifndef DEBUGGERS_H
  2. #define DEBUGGERS_H
  3. #include "olcPGEX_Sound.h"
  4. #include "olcPixelGameEngine.h"
  5. #include "bonus.h"
  6. #include "button.h"
  7. #include "bug.h"
  8. #include "player.h"
  9. #include "programmer.h"
  10. #include "game_state.h"
  11. #include <chrono>
  12. #include <list>
  13. #include <map>
  14. #include <random>
  15. #include <string>
  16. #include <vector>
  17. namespace pabloader {
  18. class Debuggers : public olc::PixelGameEngine {
  19. private:
  20. std::list<Programmer*> programmers;
  21. std::list<Bonus*> bonuses;
  22. std::list<Button*> buttons;
  23. std::map<BonusType, uint32_t> bonusesCatched;
  24. uint32_t bugsCatched = 0;
  25. uint32_t bugsCatchedByPlayer = 0;
  26. uint32_t bugsMissed = 0;
  27. uint8_t linesOfCode = 5;
  28. uint16_t totalLines;
  29. std::list<std::string> originalSourceCode;
  30. std::list<std::string> sourceCode;
  31. GameState state = STATE_MAIN_MENU;
  32. std::mt19937 generator;
  33. public:
  34. Debuggers()
  35. : generator(std::chrono::system_clock::now().time_since_epoch().count())
  36. {
  37. sAppName = "Debuggers";
  38. }
  39. public:
  40. bool OnUserCreate() override;
  41. bool OnUserUpdate(float fElapsedTime) override;
  42. bool OnUserDestroy() override;
  43. int GameScreenHeight() { return ScreenHeight() - linesOfCode * 10; }
  44. GameState GetState() { return state; }
  45. void SwitchState(GameState newState);
  46. template <typename T>
  47. T GetRandom(T from = 0, T to = 1);
  48. private:
  49. void ResetGame();
  50. void DrawMenu();
  51. void SpawnPlayer();
  52. void SpawnProgrammer();
  53. void SpawnBug();
  54. void SpawnBonus();
  55. Bug* CreateBug();
  56. Bonus* CreateBonus();
  57. private: // Gamemodes
  58. bool MainMenu(float dt);
  59. bool GamePlay(float dt);
  60. bool PauseMenu(float dt);
  61. bool GameOver(float dt);
  62. bool HelpMenu(float dt);
  63. public:
  64. std::list<Bug*> bugs;
  65. olc::ResourcePack pack;
  66. olc::Sprite playerSprite;
  67. olc::Sprite enemiesSprite;
  68. olc::Sprite bonusesSprite;
  69. olc::Sprite backgroundSprite;
  70. int bgMusic;
  71. int playerFallSample;
  72. int bugFallSample;
  73. int bugCatchSample;
  74. int hoverSample;
  75. int clickSample;
  76. const int gravity = 25;
  77. #ifdef _DEBUG
  78. bool debug = false;
  79. #endif
  80. };
  81. }
  82. #endif