From 7991efedf8bda1f787592a621f62ca40d137a7c9 Mon Sep 17 00:00:00 2001 From: Tobias Dahl Date: Thu, 13 Mar 2014 02:30:17 +0100 Subject: [PATCH 1/3] Fix --- Escape-the-Dawn/GameWorld.cpp | 2 +- Escape-the-Dawn/Systems/PlayerSystem.cpp | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/Escape-the-Dawn/GameWorld.cpp b/Escape-the-Dawn/GameWorld.cpp index 318015c..43352df 100644 --- a/Escape-the-Dawn/GameWorld.cpp +++ b/Escape-the-Dawn/GameWorld.cpp @@ -88,7 +88,7 @@ void GameWorld::Initialize() SetProperty(m_Player, "Name", std::string("PlayerShip")); transform = AddComponent(m_Player, "Transform"); transform->Position = glm::vec3(0.f, 4.f, 0.f); - transform->Scale = glm::vec3(2.0f); + transform->Scale = glm::vec3(1.0f); model = AddComponent(m_Player, "Model"); model->ModelFile = "Models/ship.obj"; AddComponent(m_Player, "Input"); diff --git a/Escape-the-Dawn/Systems/PlayerSystem.cpp b/Escape-the-Dawn/Systems/PlayerSystem.cpp index 6e98ad6..04da475 100644 --- a/Escape-the-Dawn/Systems/PlayerSystem.cpp +++ b/Escape-the-Dawn/Systems/PlayerSystem.cpp @@ -35,7 +35,7 @@ void Systems::PlayerSystem::UpdateEntity(double dt, EntityID entity, EntityID pa if(input->KeyState[GLFW_KEY_A] || input->KeyState[GLFW_KEY_LEFT]) { transform->Position -= Camera_Right * (float)dt * speed; } - if(input->KeyState[GLFW_KEY_D] || input->KeyState[GLFW_KEY_RIGHT]) { + else if(input->KeyState[GLFW_KEY_D] || input->KeyState[GLFW_KEY_RIGHT]) { transform->Position += Camera_Right * (float)dt * speed; } if(input->KeyState[GLFW_KEY_W]) { @@ -69,7 +69,6 @@ void Systems::PlayerSystem::UpdateEntity(double dt, EntityID entity, EntityID pa float TurnSpeed = 2.0f; glm::vec3 Euler = glm::eulerAngles(transform->Orientation); - LOG_DEBUG("Euler: %f", Euler.z); if(input->KeyState[GLFW_KEY_LEFT]) { transform->Position -= Ship_Right * (float)dt * speed; @@ -105,7 +104,7 @@ void Systems::PlayerSystem::UpdateEntity(double dt, EntityID entity, EntityID pa } else { - if(Euler.z < 0.5f && Euler.z > -0.5f) + if(Euler.z < 1.5f && Euler.z > -1.5f) transform->Orientation = glm::angleAxis(0,glm::vec3(0,0,1)); else if(Euler.z < 0.f) transform->Orientation = transform->Orientation * glm::angleAxis((float)dt,glm::vec3(0,0,1)); From e20516f9939ab7ff847ef733e10ee261968e0db9 Mon Sep 17 00:00:00 2001 From: sippeangelo Date: Thu, 13 Mar 2014 02:38:22 +0100 Subject: [PATCH 2/3] Also scale bounds origin --- Escape-the-Dawn/Systems/RenderSystem.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Escape-the-Dawn/Systems/RenderSystem.cpp b/Escape-the-Dawn/Systems/RenderSystem.cpp index c113486..bed895a 100644 --- a/Escape-the-Dawn/Systems/RenderSystem.cpp +++ b/Escape-the-Dawn/Systems/RenderSystem.cpp @@ -32,7 +32,7 @@ void Systems::RenderSystem::UpdateEntity( double dt, EntityID entity, EntityID p #ifdef DEBUG auto bounds = m_World->GetComponent(entity, "Bounds"); if (bounds != nullptr) { - glm::vec3 origin = transformComponent->Position + bounds->Origin; + glm::vec3 origin = transformComponent->Scale * (transformComponent->Position + bounds->Origin); glm::vec3 volumeVector = transformComponent->Scale * bounds->VolumeVector; m_Renderer->AddAABBToDraw(origin, volumeVector); } From ded88eaadd0d96fef854ad7052ef8b54a3e94182 Mon Sep 17 00:00:00 2001 From: sippeangelo Date: Thu, 13 Mar 2014 02:39:08 +0100 Subject: [PATCH 3/3] Changed type of components container to make deleting more efficient --- Escape-the-Dawn/Systems/PlayerSystem.cpp | 1 - Escape-the-Dawn/World.cpp | 2 +- Escape-the-Dawn/World.h | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/Escape-the-Dawn/Systems/PlayerSystem.cpp b/Escape-the-Dawn/Systems/PlayerSystem.cpp index 6e98ad6..ca9dfae 100644 --- a/Escape-the-Dawn/Systems/PlayerSystem.cpp +++ b/Escape-the-Dawn/Systems/PlayerSystem.cpp @@ -69,7 +69,6 @@ void Systems::PlayerSystem::UpdateEntity(double dt, EntityID entity, EntityID pa float TurnSpeed = 2.0f; glm::vec3 Euler = glm::eulerAngles(transform->Orientation); - LOG_DEBUG("Euler: %f", Euler.z); if(input->KeyState[GLFW_KEY_LEFT]) { transform->Position -= Ship_Right * (float)dt * speed; diff --git a/Escape-the-Dawn/World.cpp b/Escape-the-Dawn/World.cpp index 4c03697..e52c803 100644 --- a/Escape-the-Dawn/World.cpp +++ b/Escape-the-Dawn/World.cpp @@ -65,7 +65,7 @@ void World::RemoveEntity(EntityID entity) for (auto pair : m_EntityComponents[entity]) { auto type = pair.first; auto component = pair.second; - m_ComponentsOfType[type].erase(std::remove(m_ComponentsOfType[type].begin(), m_ComponentsOfType[type].end(), component)); + m_ComponentsOfType[type].remove(component); } RecycleEntityID(entity); } diff --git a/Escape-the-Dawn/World.h b/Escape-the-Dawn/World.h index 009c768..a0c7f22 100644 --- a/Escape-the-Dawn/World.h +++ b/Escape-the-Dawn/World.h @@ -81,7 +81,7 @@ protected: std::unordered_map> m_EntityProperties; - std::unordered_map>> m_ComponentsOfType; + std::unordered_map>> m_ComponentsOfType; std::unordered_map>> m_EntityComponents; EntityID GenerateEntityID();