diff options
Diffstat (limited to 'src/games/snake/Snake.cpp')
| -rw-r--r-- | src/games/snake/Snake.cpp | 79 |
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:; |
