From 53c7609e1103e97aff7f0cb2488221a008829eab Mon Sep 17 00:00:00 2001 From: Tobias Dahl Date: Thu, 13 Mar 2014 20:13:28 +0100 Subject: [PATCH 1/5] Smoothare acceleration --- Escape-the-Dawn/Systems/PlayerSystem.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/Escape-the-Dawn/Systems/PlayerSystem.cpp b/Escape-the-Dawn/Systems/PlayerSystem.cpp index 6e44d64..377c227 100644 --- a/Escape-the-Dawn/Systems/PlayerSystem.cpp +++ b/Escape-the-Dawn/Systems/PlayerSystem.cpp @@ -108,6 +108,7 @@ void Systems::PlayerSystem::UpdateEntity(double dt, EntityID entity, EntityID pa } else { + transform->Position -= Ship_Right * (float)dt * Euler.z; 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) From 8f18fc87e3225e3560af89a91fbe77c65c02e375 Mon Sep 17 00:00:00 2001 From: Tobias Dahl Date: Thu, 13 Mar 2014 20:59:25 +0100 Subject: [PATCH 2/5] [WIP] Frames --- Escape-the-Dawn/Frame.cpp | 91 ++++++++++++++++++++++++++++------ Escape-the-Dawn/Frame.h | 23 +++++---- Escape-the-Dawn/GUIManager.cpp | 4 +- Escape-the-Dawn/GUIManager.h | 5 +- Escape-the-Dawn/Rectangle.h | 8 +++ 5 files changed, 103 insertions(+), 28 deletions(-) diff --git a/Escape-the-Dawn/Frame.cpp b/Escape-the-Dawn/Frame.cpp index bf996ed..1c3c753 100644 --- a/Escape-the-Dawn/Frame.cpp +++ b/Escape-the-Dawn/Frame.cpp @@ -3,51 +3,74 @@ GUI::Frame::Frame() { rectangle = new Rectangle(); + texture = nullptr; } int GUI::Frame::GetWidth() { - return rectangle; + return rectangle->Width(); } int GUI::Frame::GetHeight() { - return rectangle.Height(); + return rectangle->Height(); } int GUI::Frame::GetX() { - return rectangle; + return rectangle->X(); } int GUI::Frame::GetY() { - return rectangle.Y(); + return rectangle->Y(); } -void GUI::Frame::SetWidth(int wid) +int GUI::Frame::GetRight() { - rectangle.width(wid); + return rectangle->Right(); } -void GUI::Frame::SetHeight(int hei) +int GUI::Frame::GetLeft() { - rectangle.height(hei); + return rectangle->Left(); } -void GUI::Frame::SetX(int xcord) +int GUI::Frame::GetBottom() { - rectangle.X(xcord) + return rectangle->Bottom(); } -void GUI::Frame::SetY(int ycord) +int GUI::Frame::GetTop() { - rectangle.Y(ycord) + return rectangle->Right(); } +void GUI::Frame::SetWidth(int _width) +{ + rectangle->Width(_width); +} + +void GUI::Frame::SetHeight(int _height) +{ + rectangle->Height(_height); +} + +void GUI::Frame::SetX(int _x) +{ + rectangle->X(_x); +} + +void GUI::Frame::SetY(int _y) +{ + rectangle->Y(_y); +} + + + Rectangle GUI::Frame::AbsouluteRectangle() { - + } bool GUI::Frame::Visible() @@ -85,8 +108,48 @@ void GUI::Frame::Update(double dt) } +void AddChild(GUI::Frame childFrame) +{ + childFrame.Parent = this; + if (!Children.Contains(childFrame)) + Children.Add(childFrame); +} + +/// +/// Remove a child frame from the frame. +/// +/// The child frame to remove. +void RemoveChild(GUI::Frame childFrame) +{ + if (Children.Contains(childFrame)) + Children.Remove(childFrame); +} + +/// +/// Destroys the frame and all its children. +/// +void Destroy() +{ + if (Parent != null) + Parent.RemoveChild(this); + + Manager.Remove(this); +} + +void GUI::Frame::SetTexture(std::string fileName) +{ + //texture == någonTextureIDunno; +} + void GUI::Frame::Draw() { - + if (Visible) + { + if (texture != nullptr) + { + //Drawshit + } + } } + */ \ No newline at end of file diff --git a/Escape-the-Dawn/Frame.h b/Escape-the-Dawn/Frame.h index 2e9a3f4..69dd6d7 100644 --- a/Escape-the-Dawn/Frame.h +++ b/Escape-the-Dawn/Frame.h @@ -1,4 +1,4 @@ -/*#ifndef Frame_h__ +#ifndef Frame_h__ #define Frame_h__ #include @@ -7,7 +7,7 @@ #include "GUIManager.h" #include "Texture.h" #include "Color.h" -//#include "Camera.h" +#include "Camera.h" namespace GUI { @@ -22,14 +22,19 @@ public: int GetHeight(); int GetX(); int GetY(); - void SetWidth(int wid); - void SetHeight(int hei); - void SetX( int xcord); - void SetY(int ycord); + int GetRight(); + int GetLeft(); + int GetBottom(); + int GetTop(); + void SetWidth(int _width); + void SetHeight(int _height); + void SetX( int _x); + void SetY(int _y); + void SetTexture(std::string fileName); Rectangle *rectangle; Rectangle AbsouluteRectangle(); - Texture texture; - Color color; + Texture* texture; + Color* color; bool _Visible; bool Visible(); int layer; @@ -48,4 +53,4 @@ protected: }; } -#endif*/ \ No newline at end of file +#endif \ No newline at end of file diff --git a/Escape-the-Dawn/GUIManager.cpp b/Escape-the-Dawn/GUIManager.cpp index 40b50d3..4956638 100644 --- a/Escape-the-Dawn/GUIManager.cpp +++ b/Escape-the-Dawn/GUIManager.cpp @@ -2,7 +2,7 @@ int GUI::GUIManager::Add(Frame frame) { - //Frame.Add(frame); - //return CreateUID(); + Frame.Add(frame); + return CreateUID(); } */ \ No newline at end of file diff --git a/Escape-the-Dawn/GUIManager.h b/Escape-the-Dawn/GUIManager.h index 7b8434a..57b66a7 100644 --- a/Escape-the-Dawn/GUIManager.h +++ b/Escape-the-Dawn/GUIManager.h @@ -1,4 +1,4 @@ -/*#ifndef GUIManager_h__ +#ifndef GUIManager_h__ #define GUIManager_h__ #include "Frame.h" @@ -18,9 +18,8 @@ private: static int uidIndex; }; - } -#endif */ \ No newline at end of file +#endif \ No newline at end of file diff --git a/Escape-the-Dawn/Rectangle.h b/Escape-the-Dawn/Rectangle.h index 2f6d0cd..d866955 100644 --- a/Escape-the-Dawn/Rectangle.h +++ b/Escape-the-Dawn/Rectangle.h @@ -22,6 +22,14 @@ public: int Y() const { return y; } void Y(int val) { y = val; } + + int Left() const { return x; } + + int Right() const { return x+width; } + + int Top() const { return y; } + + int Bottom() const { return y+height; } }; Rectangle::Rectangle() From 329262fe5a3d30331bd66eeecb2acbf56a8d3072 Mon Sep 17 00:00:00 2001 From: Tobias Dahl Date: Thu, 13 Mar 2014 21:38:29 +0100 Subject: [PATCH 3/5] [WIP] Colliderar saker --- Escape-the-Dawn/Systems/PlayerSystem.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Escape-the-Dawn/Systems/PlayerSystem.cpp b/Escape-the-Dawn/Systems/PlayerSystem.cpp index a55bdf3..1327bce 100644 --- a/Escape-the-Dawn/Systems/PlayerSystem.cpp +++ b/Escape-the-Dawn/Systems/PlayerSystem.cpp @@ -26,6 +26,15 @@ void Systems::PlayerSystem::UpdateEntity(double dt, EntityID entity, EntityID pa if (input == nullptr) return; + auto collision = m_World->GetComponent(entity, "Collision"); + if(collision == nullptr) + return; + + if(collision->CollidingEntities.size() > 0) + { + m_World->RemoveEntity(entity); + } + auto name = m_World->GetProperty(entity, "Name"); if (name == "Camera" && freecamEnabled) { glm::vec3 Camera_Right = glm::vec3(glm::vec4(1, 0, 0, 0) * transform->Orientation); From fe1605a15836af12fe3f3995e574a5632ff72af1 Mon Sep 17 00:00:00 2001 From: Tobias Dahl Date: Thu, 13 Mar 2014 22:00:34 +0100 Subject: [PATCH 4/5] [WIP] Saker --- Escape-the-Dawn/Systems/PlayerSystem.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Escape-the-Dawn/Systems/PlayerSystem.cpp b/Escape-the-Dawn/Systems/PlayerSystem.cpp index d57f403..53b327d 100644 --- a/Escape-the-Dawn/Systems/PlayerSystem.cpp +++ b/Escape-the-Dawn/Systems/PlayerSystem.cpp @@ -36,13 +36,16 @@ 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; else freecamEnabled = true; } + if(freecamEnabled) { glm::vec3 Camera_Right = glm::vec3(glm::vec4(1, 0, 0, 0) * transform->Orientation); From 28b83905e995f916e81cdba5791b34f153fe5069 Mon Sep 17 00:00:00 2001 From: Tobias Dahl Date: Thu, 13 Mar 2014 23:02:08 +0100 Subject: [PATCH 5/5] [WIP] Collisions and sun stuff --- Escape-the-Dawn/Shaders/Fragment.glsl | 4 ++-- Escape-the-Dawn/Systems/PlayerSystem.cpp | 17 ++++++++++------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/Escape-the-Dawn/Shaders/Fragment.glsl b/Escape-the-Dawn/Shaders/Fragment.glsl index a16878d..ca7ef0b 100644 --- a/Escape-the-Dawn/Shaders/Fragment.glsl +++ b/Escape-the-Dawn/Shaders/Fragment.glsl @@ -23,7 +23,7 @@ in VertexData { vec3 ShadowCoord; } Input; -vec3 scene_ambient = vec3(0.3); +vec3 scene_ambient = vec3(0.98f, 0.95f, 0.8f); out vec4 fragmentColor; @@ -54,7 +54,7 @@ void main() { float bias = 0.0005; vec4 shadowMapValue = texture(shadowMap, Input.ShadowCoord.xy); if (shadowMapValue.z < clamp(Input.ShadowCoord.z - bias, 0, 1)) { - visibility = 0.5; + visibility = 0.3; } } diff --git a/Escape-the-Dawn/Systems/PlayerSystem.cpp b/Escape-the-Dawn/Systems/PlayerSystem.cpp index 53b327d..02878b0 100644 --- a/Escape-the-Dawn/Systems/PlayerSystem.cpp +++ b/Escape-the-Dawn/Systems/PlayerSystem.cpp @@ -27,15 +27,18 @@ void Systems::PlayerSystem::UpdateEntity(double dt, EntityID entity, EntityID pa return; auto collision = m_World->GetComponent(entity, "Collision"); - if(collision == nullptr) - return; - - if(collision->CollidingEntities.size() > 0) - { - m_World->RemoveEntity(entity); - } auto name = m_World->GetProperty(entity, "Name"); + if(collision != nullptr) + { + for(auto ent : collision->CollidingEntities) + { + if(m_World->GetProperty(ent, "Name") == "Obstacle") + { + m_World->RemoveEntity(entity); + } + } + } if (name == "Camera") {