GameState.hxx 653 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #pragma once
  2. #ifndef SNAKE_GAMESTATE_HXX
  3. #define SNAKE_GAMESTATE_HXX
  4. #include <chrono>
  5. #include <SDL.h>
  6. class GameStateManager;
  7. class SDLRenderer;
  8. class GameState {
  9. public:
  10. virtual ~GameState() noexcept = default;
  11. virtual void on_enter(GameStateManager& gsm) { (void) gsm; }
  12. virtual void on_leave() { }
  13. virtual void on_event(GameStateManager& gsm, SDL_Event const& event)
  14. {
  15. (void) gsm;
  16. (void) event;
  17. }
  18. virtual void update(GameStateManager& gsm, std::chrono::milliseconds const delta_time)
  19. {
  20. (void) gsm;
  21. (void) delta_time;
  22. }
  23. virtual void render(SDLRenderer& renderer) = 0;
  24. };
  25. #endif // SNAKE_GAMESTATE_HXX