GameState.hxx 605 B

123456789101112131415161718192021222324252627282930313233
  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 delta_time) = 0;
  19. virtual void render(SDLRenderer& renderer) = 0;
  20. };
  21. #endif // SNAKE_GAMESTATE_HXX