diff options
| author | fschildt <florian.schildt@protonmail.com> | 2025-09-28 11:23:04 +0200 | 
|---|---|---|
| committer | fschildt <florian.schildt@protonmail.com> | 2025-09-28 11:23:04 +0200 | 
| commit | 4537e9bee3d054786857fa92824e2d9e8385bb36 (patch) | |
| tree | 92ee1fea597f8164d09885286b71d812f6890259 /src/games/snake | |
| parent | 3d30e1ee9d1c9fb67cca8e3f178ba5fd05a2726e (diff) | |
minesweeper: now playable
Diffstat (limited to 'src/games/snake')
| -rw-r--r-- | src/games/snake/Snake.cpp | 24 | ||||
| -rw-r--r-- | src/games/snake/Snake.hpp | 8 | 
2 files changed, 18 insertions, 14 deletions
diff --git a/src/games/snake/Snake.cpp b/src/games/snake/Snake.cpp index 6a95521..aa8cedf 100644 --- a/src/games/snake/Snake.cpp +++ b/src/games/snake/Snake.cpp @@ -2,7 +2,9 @@  #include <imgui.h> -Snake::Snake () { +Snake::Snake(RenderGroup& render_group) +    : m_RenderGroup{render_group} +{      m_IsPaused = false;      m_IsRunning = true; @@ -33,9 +35,9 @@ Snake::Snake () {      m_Dist = std::uniform_int_distribution<int32_t>(0, m_MapWidth * m_MapHeight - 3);      SpawnFood(); -    } +} -bool Snake::Update(std::vector<SDL_Event> &events, RenderGroup &render_group) { +bool Snake::Update(std::vector<SDL_Event> &events) {      uint64_t milliseconds_since_t0 = SDL_GetTicks();      uint64_t milliseconds_since_t0_last = m_LastMillisecondsSinceT0;      uint64_t dt_in_milliseconds = milliseconds_since_t0 - milliseconds_since_t0_last; @@ -44,8 +46,8 @@ bool Snake::Update(std::vector<SDL_Event> &events, RenderGroup &render_group) {      Color clear_color = {0.3f, 0.3f, 0.3f, 1.0f}; -    render_group.SetCameraSize(4.0f, 3.0f); -    render_group.Clear(clear_color); +    m_RenderGroup.SetCameraSize(4.0f, 3.0f); +    m_RenderGroup.Clear(clear_color);      for (SDL_Event &event : events) { @@ -66,7 +68,7 @@ bool Snake::Update(std::vector<SDL_Event> &events, RenderGroup &render_group) {      } -    Draw(render_group); +    Draw();      DoImgui();      return m_IsRunning; @@ -249,7 +251,7 @@ void Snake::SpawnFood() {      m_FoodPosition = {bit0_x, bit0_y};  } -void Snake::Draw(RenderGroup &render_group) { +void Snake::Draw() {      float world_width = 4.0f;      float world_height = 3.0f; @@ -275,7 +277,7 @@ void Snake::Draw(RenderGroup &render_group) {          map_world_pos.y + map_world_dim.y      };      Color bg_color = {0.0f, 0.0f, 0.0f, 1.0f}; -    render_group.PushRectangle(map_world_rect, map_world_pos.z, bg_color); +    m_RenderGroup.PushRectangle(map_world_rect, map_world_pos.z, bg_color);      /* draw snake */ @@ -304,7 +306,7 @@ void Snake::Draw(RenderGroup &render_group) {              };              Color color = {0.3f, 0.3f, 0.3f, 1.0f}; -            render_group.PushRectangle(world_rect, world_pos.z, color); +            m_RenderGroup.PushRectangle(world_rect, world_pos.z, color);              tail++;          }          tail = 0; @@ -332,7 +334,7 @@ void Snake::Draw(RenderGroup &render_group) {          };          Color color = {0.3f, 0.3f, 0.3f, 1.0f}; -        render_group.PushRectangle(world_rect, world_pos.z, color); +        m_RenderGroup.PushRectangle(world_rect, world_pos.z, color);          tail++;      } @@ -351,7 +353,7 @@ void Snake::Draw(RenderGroup &render_group) {          pos.y + dim.y      };      Color color = {0.3f, 0.6f, 0.4f, 1.0f}; -    render_group.PushRectangle(rect, pos.z, color); +    m_RenderGroup.PushRectangle(rect, pos.z, color);  }  void Snake::DoImgui() { diff --git a/src/games/snake/Snake.hpp b/src/games/snake/Snake.hpp index f04ad16..ef1fd34 100644 --- a/src/games/snake/Snake.hpp +++ b/src/games/snake/Snake.hpp @@ -17,8 +17,8 @@ public:  public: -    Snake(); -    bool Update(std::vector<SDL_Event> &events, RenderGroup &render_group) override; +    Snake(RenderGroup& render_group); +    bool Update(std::vector<SDL_Event> &events) override;  private: @@ -28,7 +28,7 @@ private:      void MaybeMoveSnake(float dt_in_seconds);      void SpawnFood(); -    void Draw(RenderGroup &render_group); +    void Draw();      void DoImgui(); @@ -37,6 +37,8 @@ private:      static constexpr int32_t MAX_MAP_WIDTH = 16;      static constexpr int32_t MAX_MAP_HEIGHT = 16; +    RenderGroup& m_RenderGroup; +      bool m_IsPaused;      bool m_IsRunning;  | 
