diff --git a/Escape-the-Dawn/Systems/LevelGenerationSystem.cpp b/Escape-the-Dawn/Systems/LevelGenerationSystem.cpp index 90a20e9..92a4ab6 100644 --- a/Escape-the-Dawn/Systems/LevelGenerationSystem.cpp +++ b/Escape-the-Dawn/Systems/LevelGenerationSystem.cpp @@ -17,7 +17,6 @@ void Systems::LevelGenerationSystem::SpawnObstacle() EntityID ent; ent = m_World->CreateEntity(); - obstacles.push_back(ent); auto transform = m_World->AddComponent(ent, "Transform"); auto bounds = m_World->AddComponent(ent, "Bounds"); @@ -28,7 +27,7 @@ void Systems::LevelGenerationSystem::SpawnObstacle() positionRandom = -500 + startx + (rand() % 1000); transform->Position = glm::vec3(positionRandom, startyz); - //transform->Velocity = glm::vec3(0.f, 10.f, 100.f); + transform->Velocity = glm::vec3(0.f, 10.f, 0); sound->Loop = true; sound->Gain = 1.f; @@ -78,7 +77,7 @@ void Systems::LevelGenerationSystem::SpawnObstacle() // Put it below ground level - //transform->Position.y -= bounds->VolumeVector.y * 2.f; + transform->Position.y -= bounds->VolumeVector.y * 2.f; } @@ -94,40 +93,30 @@ void Systems::LevelGenerationSystem::Update( double dt ) - for(auto ent : obstacles) - { - 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; - } - - if(transform->Position.z > 800) - { - removethis.push_back(ent); - } - } - } - - for(auto ent : removethis) - { - m_World->RemoveEntity(ent); - obstacles.remove(ent); - } - removethis.clear(); + } void Systems::LevelGenerationSystem::UpdateEntity( double dt, EntityID entity, EntityID parent ) { + if( m_World->GetProperty(entity, "Name") == "Obstacle" || m_World->GetProperty(entity, "Name") == "PowerUp") + { + auto transform = m_World->GetComponent(entity, "Transform"); + 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; + } + + if(transform->Position.z > 800) + m_World->RemoveEntity(entity); + + } + if( m_World->GetProperty(entity, "Name") == "Player") { auto transformComponent = m_World->GetComponent(entity, "Transform"); diff --git a/Escape-the-Dawn/Systems/LevelGenerationSystem.h b/Escape-the-Dawn/Systems/LevelGenerationSystem.h index c51e0b9..ab02fe3 100644 --- a/Escape-the-Dawn/Systems/LevelGenerationSystem.h +++ b/Escape-the-Dawn/Systems/LevelGenerationSystem.h @@ -31,10 +31,7 @@ namespace Systems int positionRandom; glm::vec2 startyz; float startx; - std::list removethis; double elapsedtime; - - std::list obstacles; float velocity; }; } diff --git a/Escape-the-Dawn/Systems/PlayerSystem.cpp b/Escape-the-Dawn/Systems/PlayerSystem.cpp index 201d423..fcbce85 100644 --- a/Escape-the-Dawn/Systems/PlayerSystem.cpp +++ b/Escape-the-Dawn/Systems/PlayerSystem.cpp @@ -153,18 +153,16 @@ void Systems::PlayerSystem::UpdateEntity(double dt, EntityID entity, EntityID pa if(name == "PowerUp") { auto powerupComp = m_World->GetComponent(ent, "PowerUp"); - if(powerupComp != nullptr) - { - transform->Velocity.z = powerupComp->Speed; - m_poweruptimeleft = 3.f; - m_World->RemoveEntity(ent); - } + transform->Velocity.z = powerupComp->Speed; + m_poweruptimeleft = 3.f; + m_World->RemoveEntity(ent); } } if(m_poweruptimeleft <= 0) { transform->Velocity.z = m_basespeed; } + //fixa FOV // Update camera