GameState.hxx 440 B

12345678910111213141516171819202122232425
  1. #pragma once
  2. #ifndef SNAKE_GAMESTATE_HXX
  3. #define SNAKE_GAMESTATE_HXX
  4. #include <chrono>
  5. class GameStateManager;
  6. class SDLRenderer;
  7. class GameState {
  8. public:
  9. virtual ~GameState() noexcept = default;
  10. virtual void on_enter() { }
  11. virtual void on_leave() { }
  12. virtual void update(GameStateManager& gsm, std::chrono::milliseconds delta_time) = 0;
  13. virtual void render(SDLRenderer& renderer) = 0;
  14. };
  15. #endif // SNAKE_GAMESTATE_HXX