diff --git a/Escape-the-Dawn/Systems/LevelGenerationSystem.cpp b/Escape-the-Dawn/Systems/LevelGenerationSystem.cpp index 931d524..90a20e9 100644 --- a/Escape-the-Dawn/Systems/LevelGenerationSystem.cpp +++ b/Escape-the-Dawn/Systems/LevelGenerationSystem.cpp @@ -99,19 +99,21 @@ void Systems::LevelGenerationSystem::Update( double dt ) auto transform = m_World->GetComponent(ent, "Transform"); if(transform != nullptr) { - transform->Velocity.z = velocity; - transform->Position += transform->Velocity * (float)dt; - // Stop raising obstacles when they reach ground level - if (transform->Velocity.y > 0 && transform->Position.y >= 0) { - transform->Position.y = 0; - transform->Velocity.y = 0; - } + + transform->Velocity.z = velocity; + transform->Position += transform->Velocity * (float)dt; - if(transform->Position.z > 800) - { - removethis.push_back(ent); - } + // Stop raising obstacles when they reach ground level + if (transform->Velocity.y > 0 && transform->Position.y >= 0) { + transform->Position.y = 0; + transform->Velocity.y = 0; + } + + if(transform->Position.z > 800) + { + removethis.push_back(ent); + } } } diff --git a/Escape-the-Dawn/Systems/PlayerSystem.cpp b/Escape-the-Dawn/Systems/PlayerSystem.cpp index 60f4971..201d423 100644 --- a/Escape-the-Dawn/Systems/PlayerSystem.cpp +++ b/Escape-the-Dawn/Systems/PlayerSystem.cpp @@ -9,12 +9,14 @@ Systems::PlayerSystem::PlayerSystem( World* world ) : System(world) m_CameraOffset = glm::vec3(0.f, 5.f, 14.f); m_CameraOrientation = glm::angleAxis(glm::radians(15.0f),glm::vec3(1,0,0)); - freecamEnabled = false; - + m_freecamEnabled = false; + m_poweruptimeleft = 0; + m_basespeed = 100.f; } void Systems::PlayerSystem::Update(double dt) { + m_poweruptimeleft -= (float)dt; } void Systems::PlayerSystem::UpdateEntity(double dt, EntityID entity, EntityID parent) @@ -29,12 +31,12 @@ void Systems::PlayerSystem::UpdateEntity(double dt, EntityID entity, EntityID pa auto name = m_World->GetProperty(entity, "Name"); if (name == "Camera") { if(input->KeyState[GLFW_KEY_F4] && !input->LastKeyState[GLFW_KEY_F4]) { - if(freecamEnabled) - freecamEnabled = false; + if(m_freecamEnabled) + m_freecamEnabled = false; else - freecamEnabled = true; + m_freecamEnabled = true; } - if(freecamEnabled) + if(m_freecamEnabled) { glm::vec3 Camera_Right = glm::vec3(glm::vec4(1, 0, 0, 0) * transform->Orientation); glm::vec3 Camera_Forward = glm::vec3(glm::vec4(0, 0, 1, 0) * transform->Orientation); @@ -154,15 +156,19 @@ void Systems::PlayerSystem::UpdateEntity(double dt, EntityID entity, EntityID pa if(powerupComp != nullptr) { transform->Velocity.z = powerupComp->Speed; + m_poweruptimeleft = 3.f; m_World->RemoveEntity(ent); } } } - - + if(m_poweruptimeleft <= 0) + { + transform->Velocity.z = m_basespeed; + } + // Update camera - if(! freecamEnabled) + if(! m_freecamEnabled) { auto cameraEntity = m_World->GetProperty(entity, "Camera"); auto cameraTransform = m_World->GetComponent(cameraEntity, "Transform"); diff --git a/Escape-the-Dawn/Systems/PlayerSystem.h b/Escape-the-Dawn/Systems/PlayerSystem.h index 2774565..c008caa 100644 --- a/Escape-the-Dawn/Systems/PlayerSystem.h +++ b/Escape-the-Dawn/Systems/PlayerSystem.h @@ -33,7 +33,9 @@ namespace Systems glm::vec3 m_CameraOffset; glm::quat m_CameraOrientation; - bool freecamEnabled; + bool m_freecamEnabled; + float m_basespeed; + float m_poweruptimeleft; }; }