MenuState.hxx 789 B

12345678910111213141516171819202122232425262728
  1. #pragma once
  2. #ifndef SNAKE_MENUSTATE_HXX
  3. #define SNAKE_MENUSTATE_HXX
  4. #include "GameState.hxx"
  5. #include "ui/Button.hxx"
  6. class MenuState final : public GameState {
  7. public:
  8. void on_enter(GameStateManager& gsm) override;
  9. void on_event(GameStateManager& gsm, SDL_Event const& evt) override;
  10. void update(GameStateManager& gsm, std::chrono::milliseconds delta_time) override;
  11. void render(SDLRenderer& renderer) override;
  12. private:
  13. static int constexpr BUTTON_HEIGHT = 80;
  14. static int constexpr BUTTON_WIDTH = 300;
  15. Button new_game_button_{"New game", 0, 0, BUTTON_WIDTH, BUTTON_HEIGHT, UiColor::Green};
  16. Button continue_button_{"Continue", 0, 0, BUTTON_WIDTH, BUTTON_HEIGHT};
  17. Button quit_button_{"Quit", 0, 0, BUTTON_WIDTH, BUTTON_HEIGHT};
  18. };
  19. #endif // SNAKE_MENUSTATE_HXX