aboutsummaryrefslogtreecommitdiff
path: root/src/games/snake/Snake.cpp
diff options
context:
space:
mode:
authorfschildt <florian.schildt@protonmail.com>2025-09-28 11:23:04 +0200
committerfschildt <florian.schildt@protonmail.com>2025-09-28 11:23:04 +0200
commit4537e9bee3d054786857fa92824e2d9e8385bb36 (patch)
tree92ee1fea597f8164d09885286b71d812f6890259 /src/games/snake/Snake.cpp
parent3d30e1ee9d1c9fb67cca8e3f178ba5fd05a2726e (diff)
minesweeper: now playable
Diffstat (limited to 'src/games/snake/Snake.cpp')
-rw-r--r--src/games/snake/Snake.cpp24
1 files changed, 13 insertions, 11 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() {