From 666ef6589e2082751a4d7e3a5f23842d3f70f569 Mon Sep 17 00:00:00 2001 From: sippeangelo Date: Sat, 23 Jan 2016 15:06:47 +0100 Subject: [PATCH] Crouching! --- resources/Schema/Components/Player.xml | 3 +- resources/Schema/Components/Player.xsd | 1 + resources/Schema/Entities/MovementTest.xml | 4 +++ resources/Schema/Entities/Player.xml | 37 +++++++++++++++++++--- src/Game/Systems/PlayerMovementSystem.cpp | 23 +++++++++++--- 5 files changed, 59 insertions(+), 9 deletions(-) diff --git a/resources/Schema/Components/Player.xml b/resources/Schema/Components/Player.xml index a9ecc6be..b51326aa 100644 --- a/resources/Schema/Components/Player.xml +++ b/resources/Schema/Components/Player.xml @@ -1,4 +1,5 @@ - 0.2 + 3 + 1.5 \ No newline at end of file diff --git a/resources/Schema/Components/Player.xsd b/resources/Schema/Components/Player.xsd index 89c4a398..13948dc2 100644 --- a/resources/Schema/Components/Player.xsd +++ b/resources/Schema/Components/Player.xsd @@ -10,6 +10,7 @@ + diff --git a/resources/Schema/Entities/MovementTest.xml b/resources/Schema/Entities/MovementTest.xml index 9ea1ae68..00f94120 100644 --- a/resources/Schema/Entities/MovementTest.xml +++ b/resources/Schema/Entities/MovementTest.xml @@ -13,6 +13,7 @@ Models/Core/UnitCube.obj + false @@ -93,6 +94,7 @@ Models/Core/UnitCube.obj + false @@ -107,6 +109,7 @@ Models/Core/UnitCube.obj + false @@ -121,6 +124,7 @@ Models/Core/UnitCube.obj + false diff --git a/resources/Schema/Entities/Player.xml b/resources/Schema/Entities/Player.xml index fa8b7686..4398dcc1 100644 --- a/resources/Schema/Entities/Player.xml +++ b/resources/Schema/Entities/Player.xml @@ -7,6 +7,9 @@ + + + 3 @@ -17,7 +20,7 @@ - + @@ -27,19 +30,18 @@ - - Fonts/DroidSans.ttf,100 + false - + @@ -85,6 +87,33 @@ + + + + Models/Core/UnitCube.obj + + false + + + + + + + + + + + + Models/Core/UnitCube.obj + + false + + + + + + + diff --git a/src/Game/Systems/PlayerMovementSystem.cpp b/src/Game/Systems/PlayerMovementSystem.cpp index 10fc29f6..c5b55cde 100644 --- a/src/Game/Systems/PlayerMovementSystem.cpp +++ b/src/Game/Systems/PlayerMovementSystem.cpp @@ -37,12 +37,27 @@ void PlayerMovementSystem::Update(double dt) ori.y += controller->Rotation().y; glm::vec3& pos = cTransform["Position"]; - pos += controller->Movement() * glm::inverse(glm::quat(ori)) * (float)player["Player"]["MovementSpeed"] * (float)dt; + float speed; + if (controller->Crouching()) { + speed = player["Player"]["CrouchSpeed"]; + } else { + speed = player["Player"]["MovementSpeed"]; + } + pos += controller->Movement() * glm::inverse(glm::quat(ori)) * speed * (float)dt; if (player.HasComponent("Physics")) { - if (controller->Jumping()) { - glm::vec3& velocity = player["Physics"]["Velocity"]; - velocity.y += 10.f; + glm::vec3& velocity = player["Physics"]["Velocity"]; + if (controller->Jumping() && !controller->Crouching() && velocity.y == 0.f) { + velocity.y += 4.f; + } + } + + if (player.HasComponent("AABB")) { + glm::vec3& size = player["AABB"]["Size"]; + if (controller->Crouching()) { + size = glm::vec3(1.f, 1.f, 1.f); + } else { + size = glm::vec3(1.f, 1.6f, 1.f); } }