aboutsummaryrefslogtreecommitdiff
path: root/src/games/snake/Snake.cpp
diff options
context:
space:
mode:
authorfschildt <florian.schildt@protonmail.com>2025-12-11 02:26:56 +0100
committerfschildt <florian.schildt@protonmail.com>2025-12-11 02:56:04 +0100
commit6fffbbed46b903223f752faee7bbb870557665c9 (patch)
tree11c52ccd5fc3a6e3bae142052fa54c49bc6ba853 /src/games/snake/Snake.cpp
parent69f46d34e9c6a25c63668423fd984d07c1f099a3 (diff)
refactor Game.hpp, add unfinished pong
Diffstat (limited to 'src/games/snake/Snake.cpp')
-rw-r--r--src/games/snake/Snake.cpp79
1 files changed, 10 insertions, 69 deletions
diff --git a/src/games/snake/Snake.cpp b/src/games/snake/Snake.cpp
index 7dc7f9d..bb81470 100644
--- a/src/games/snake/Snake.cpp
+++ b/src/games/snake/Snake.cpp
@@ -15,7 +15,7 @@ Snake::Snake()
}
void
-Snake::Start(int32_t map_width, int32_t map_height)
+Snake::Start()
{
m_dt_remaining_seconds = 0.0f;
m_tlast_milliseconds = SDL_GetTicks();
@@ -23,10 +23,10 @@ Snake::Start(int32_t map_width, int32_t map_height)
m_direction = right;
m_last_advanced_direction = right;
- assert(map_width <= max_map_width);
- assert(map_height <= max_map_height);
- m_map_width = map_width;
- m_map_height = map_height;
+ m_map_width = m_starting_map_width;
+ m_map_height = m_starting_map_height;
+ assert(m_map_width <= max_map_width);
+ assert(m_map_height <= max_map_height);
m_tail = 0;
m_head = 1;
@@ -40,56 +40,13 @@ Snake::Start(int32_t map_width, int32_t map_height)
m_dist = std::uniform_int_distribution<int32_t>(0, m_map_width*m_map_height - 3);
SpawnFood();
- m_game_status = game_resuming;
+ m_game_status = game_resume;
}
-bool
-Snake::Update(std::vector<SDL_Event> &events)
+void
+Snake::FinishUpdate(float dt)
{
- Color clear_color = {0.3f, 0.3f, 0.3f, 1.0f};
- g_renderer.SetCameraSize(4.0f, 3.0f);
- g_renderer.SetClearColor(clear_color);
-
-
- if (m_game_status == game_starting) {
- int32_t map_width = 16;
- int32_t map_height = 16;
- Start(map_width, map_height);
- }
-
-
- for (SDL_Event &event : events) {
- if (m_game_status == game_resuming) {
- ProcessEventDuringResume(event);
- }
- else if (m_game_status == game_paused) {
- ProcessEventDuringPause(event);
- }
- }
-
-
- float dt = ProcessDt();
-
- switch (m_game_status) {
- case game_starting: {
- } break;
- case game_resuming: {
- MaybeMoveSnake(dt);
- } break;
- case game_over: {
- DrawDefaultGameOverMenu();
- } break;
- case game_paused: {
- DrawDefaultGamePausedMenu();
- } break;
- case game_exit: {
- return false;
- } break;
- }
-
-
- Draw();
- return true;
+ MaybeMoveSnake(dt);
}
void
@@ -166,20 +123,7 @@ Snake::MaybeMoveSnake(float dt)
}
void
-Snake::ProcessEventDuringPause(SDL_Event &event)
-{
- switch (event.type) {
- case SDL_EVENT_KEY_DOWN: {
- if (event.key.key == SDLK_ESCAPE) {
- m_game_status = game_resuming;
- }
- }
- default:;
- }
-}
-
-void
-Snake::ProcessEventDuringResume(SDL_Event &event)
+Snake::ProcessEvent(SDL_Event& event)
{
switch (event.type) {
case SDL_EVENT_KEY_DOWN: {
@@ -211,9 +155,6 @@ Snake::ProcessEventDuringResume(SDL_Event &event)
m_direction = left;
}
}
- else if (event.key.key == SDLK_ESCAPE) {
- m_game_status = game_paused;
- }
}
default:;