From 4b9cb71cca13edd1cd0959f30f15e06fdd66892d Mon Sep 17 00:00:00 2001 From: ViktorLjung Date: Fri, 14 Mar 2014 00:57:52 +0100 Subject: [PATCH] Fixad FOV Levelgen Spawnfrequency --- Escape-the-Dawn/Components/Camera.h | 2 ++ Escape-the-Dawn/GameWorld.cpp | 2 +- .../Systems/LevelGenerationSystem.cpp | 4 +++- .../Systems/LevelGenerationSystem.h | 1 + Escape-the-Dawn/Systems/PlayerSystem.cpp | 24 ++++++++++++++----- Escape-the-Dawn/Systems/PlayerSystem.h | 3 +++ 6 files changed, 28 insertions(+), 8 deletions(-) diff --git a/Escape-the-Dawn/Components/Camera.h b/Escape-the-Dawn/Components/Camera.h index 62d6905..2cd379d 100644 --- a/Escape-the-Dawn/Components/Camera.h +++ b/Escape-the-Dawn/Components/Camera.h @@ -8,6 +8,8 @@ namespace Components struct Camera : Component { + Camera() : FOV(glm::radians(45.f)), NearClip(0.1f), FarClip(100.f) { } + float FOV; float NearClip; float FarClip; diff --git a/Escape-the-Dawn/GameWorld.cpp b/Escape-the-Dawn/GameWorld.cpp index 10657cd..7eb218e 100644 --- a/Escape-the-Dawn/GameWorld.cpp +++ b/Escape-the-Dawn/GameWorld.cpp @@ -65,7 +65,7 @@ void GameWorld::Initialize() AddComponent(entcamera, "Input"); transform->Position = glm::vec3(0.f, 10.f, 14.f); camera = AddComponent(entcamera, "Camera"); - camera->FOV = 45.f; + camera->FOV = glm::radians(45.f); camera->FarClip = 1000.f; camera->NearClip = 0.01f; transform->Orientation = glm::angleAxis(glm::radians(15.0f),glm::vec3(1,0,0)); diff --git a/Escape-the-Dawn/Systems/LevelGenerationSystem.cpp b/Escape-the-Dawn/Systems/LevelGenerationSystem.cpp index 31e31da..0804afc 100644 --- a/Escape-the-Dawn/Systems/LevelGenerationSystem.cpp +++ b/Escape-the-Dawn/Systems/LevelGenerationSystem.cpp @@ -8,6 +8,7 @@ Systems::LevelGenerationSystem::LevelGenerationSystem( World* world ) velocity = 0; startx = 0; startyz = glm::vec2(0, -1000); + spawnFrequency = 0.1f; } void Systems::LevelGenerationSystem::SpawnObstacle() @@ -85,8 +86,9 @@ void Systems::LevelGenerationSystem::Update( double dt ) { elapsedtime += dt; + spawnFrequency = velocity/1000; - if(elapsedtime > 0.1){ + if(elapsedtime > spawnFrequency){ SpawnObstacle(); elapsedtime = 0; } diff --git a/Escape-the-Dawn/Systems/LevelGenerationSystem.h b/Escape-the-Dawn/Systems/LevelGenerationSystem.h index ab02fe3..7d0339d 100644 --- a/Escape-the-Dawn/Systems/LevelGenerationSystem.h +++ b/Escape-the-Dawn/Systems/LevelGenerationSystem.h @@ -33,6 +33,7 @@ namespace Systems float startx; double elapsedtime; float velocity; + float spawnFrequency; }; } diff --git a/Escape-the-Dawn/Systems/PlayerSystem.cpp b/Escape-the-Dawn/Systems/PlayerSystem.cpp index 070b355..177b6bf 100644 --- a/Escape-the-Dawn/Systems/PlayerSystem.cpp +++ b/Escape-the-Dawn/Systems/PlayerSystem.cpp @@ -12,6 +12,7 @@ Systems::PlayerSystem::PlayerSystem( World* world ) : System(world) freecamEnabled = false; m_poweruptimeleft = 0; m_basespeed = 100.f; + m_maxspeed = 100.f; } void Systems::PlayerSystem::Update(double dt) @@ -164,6 +165,7 @@ void Systems::PlayerSystem::UpdateEntity(double dt, EntityID entity, EntityID pa //powerup auto cameraEntity = m_World->GetProperty(entity, "Camera"); auto cameracamera = m_World->GetComponent(cameraEntity, "Camera"); + cameracamera->FOV = glm::radians(20.f + transform->Velocity.z/3 ); auto collisionComponent = m_World->GetComponent(entity, "Collision"); for(auto ent : collisionComponent->CollidingEntities) @@ -172,19 +174,29 @@ void Systems::PlayerSystem::UpdateEntity(double dt, EntityID entity, EntityID pa if(name == "PowerUp") { auto powerupComp = m_World->GetComponent(ent, "PowerUp"); - transform->Velocity.z = powerupComp->Speed; - m_poweruptimeleft = 3.f; + m_maxspeed = powerupComp->Speed; + m_poweruptimeleft = 5.f; m_World->RemoveEntity(ent); - - cameracamera->FOV = 55.f; } } if(m_poweruptimeleft <= 0) { - transform->Velocity.z = m_basespeed; - cameracamera->FOV = 45.f; + m_maxspeed = m_basespeed; } + if(transform->Velocity.z < m_maxspeed) + { + transform->Velocity.z += 100.f*dt; + if(transform->Velocity.z >= m_maxspeed) + transform->Velocity.z = m_maxspeed; + } + else if(transform->Velocity.z > m_maxspeed) + { + transform->Velocity.z -= 50.f*dt; + if(transform->Velocity.z <= m_maxspeed) + transform->Velocity.z = m_maxspeed; + } + // Update camera diff --git a/Escape-the-Dawn/Systems/PlayerSystem.h b/Escape-the-Dawn/Systems/PlayerSystem.h index 9da1204..993ee20 100644 --- a/Escape-the-Dawn/Systems/PlayerSystem.h +++ b/Escape-the-Dawn/Systems/PlayerSystem.h @@ -34,7 +34,10 @@ namespace Systems glm::quat m_CameraOrientation; bool freecamEnabled; + float m_basespeed; + float m_maxspeed; + float m_poweruptimeleft; };