From b6ed980b0374868868ac274ed46a1a823c10db4f Mon Sep 17 00:00:00 2001 From: JAROWMR Date: Thu, 12 Dec 2024 15:35:17 +0100 Subject: change get dt --- src/crepe/system/PhysicsSystem.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'src/crepe/system/PhysicsSystem.cpp') diff --git a/src/crepe/system/PhysicsSystem.cpp b/src/crepe/system/PhysicsSystem.cpp index a1d35bb..5629809 100644 --- a/src/crepe/system/PhysicsSystem.cpp +++ b/src/crepe/system/PhysicsSystem.cpp @@ -20,8 +20,7 @@ void PhysicsSystem::update() { LoopTimerManager & loop_timer = mediator.loop_timer; RefVector rigidbodies = mgr.get_components_by_type(); - duration_t delta_time = loop_timer.get_scaled_fixed_delta_time(); - float dt = duration(delta_time).count(); + float dt = std::chrono::duration(loop_timer.get_scaled_fixed_delta_time()).count(); float gravity = Config::get_instance().physics.gravity; for (Rigidbody & rigidbody : rigidbodies) { -- cgit v1.2.3 From f1650941336db0b1b5152dc900022e99853770ed Mon Sep 17 00:00:00 2001 From: JAROWMR Date: Thu, 12 Dec 2024 16:22:43 +0100 Subject: updated constraints --- src/crepe/system/PhysicsSystem.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'src/crepe/system/PhysicsSystem.cpp') diff --git a/src/crepe/system/PhysicsSystem.cpp b/src/crepe/system/PhysicsSystem.cpp index 5629809..38deb43 100644 --- a/src/crepe/system/PhysicsSystem.cpp +++ b/src/crepe/system/PhysicsSystem.cpp @@ -41,7 +41,7 @@ void PhysicsSystem::update() { throw std::runtime_error("Config Gravity must be greater than 0"); } - if (rigidbody.data.gravity_scale > 0) { + if (rigidbody.data.gravity_scale > 0 && !rigidbody.data.constraints.y) { rigidbody.data.linear_velocity.y += (rigidbody.data.mass * rigidbody.data.gravity_scale * gravity * dt); @@ -53,13 +53,15 @@ void PhysicsSystem::update() { } // Add coefficient movement horizontal - if (rigidbody.data.linear_velocity_coefficient.x > 0) { + if (rigidbody.data.linear_velocity_coefficient.x > 0 + && !rigidbody.data.constraints.x) { rigidbody.data.linear_velocity.x *= std::pow(rigidbody.data.linear_velocity_coefficient.x, dt); } // Add coefficient movement horizontal - if (rigidbody.data.linear_velocity_coefficient.y > 0) { + if (rigidbody.data.linear_velocity_coefficient.y > 0 + && !rigidbody.data.constraints.y) { rigidbody.data.linear_velocity.y *= std::pow(rigidbody.data.linear_velocity_coefficient.y, dt); } -- cgit v1.2.3 From 32ab9f586491ec513a170160f201acfb8df90f3d Mon Sep 17 00:00:00 2001 From: JAROWMR Date: Thu, 12 Dec 2024 18:18:10 +0100 Subject: made better readable --- src/crepe/system/AISystem.cpp | 2 +- src/crepe/system/PhysicsSystem.cpp | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) (limited to 'src/crepe/system/PhysicsSystem.cpp') diff --git a/src/crepe/system/AISystem.cpp b/src/crepe/system/AISystem.cpp index 77de123..680dbb8 100644 --- a/src/crepe/system/AISystem.cpp +++ b/src/crepe/system/AISystem.cpp @@ -16,7 +16,7 @@ void AISystem::update() { LoopTimerManager & loop_timer = mediator.loop_timer; RefVector ai_components = mgr.get_components_by_type(); - float dt = std::chrono::duration(loop_timer.get_scaled_fixed_delta_time()).count(); + float dt = loop_timer.get_scaled_fixed_delta_time().count(); // Loop through all AI components for (AI & ai : ai_components) { diff --git a/src/crepe/system/PhysicsSystem.cpp b/src/crepe/system/PhysicsSystem.cpp index 38deb43..6970e03 100644 --- a/src/crepe/system/PhysicsSystem.cpp +++ b/src/crepe/system/PhysicsSystem.cpp @@ -19,8 +19,7 @@ void PhysicsSystem::update() { ComponentManager & mgr = mediator.component_manager; LoopTimerManager & loop_timer = mediator.loop_timer; RefVector rigidbodies = mgr.get_components_by_type(); - - float dt = std::chrono::duration(loop_timer.get_scaled_fixed_delta_time()).count(); + float dt = loop_timer.get_scaled_fixed_delta_time().count(); float gravity = Config::get_instance().physics.gravity; for (Rigidbody & rigidbody : rigidbodies) { -- cgit v1.2.3 From 15bb400deafa1ea4fea1ff11e835f103fa82090f Mon Sep 17 00:00:00 2001 From: JAROWMR Date: Thu, 12 Dec 2024 18:21:38 +0100 Subject: change get fixed_dt to float --- src/crepe/manager/LoopTimerManager.cpp | 4 ++-- src/crepe/manager/LoopTimerManager.h | 2 +- src/crepe/system/AISystem.cpp | 2 +- src/crepe/system/PhysicsSystem.cpp | 3 +-- 4 files changed, 5 insertions(+), 6 deletions(-) (limited to 'src/crepe/system/PhysicsSystem.cpp') diff --git a/src/crepe/manager/LoopTimerManager.cpp b/src/crepe/manager/LoopTimerManager.cpp index 9819632..4a3df0a 100644 --- a/src/crepe/manager/LoopTimerManager.cpp +++ b/src/crepe/manager/LoopTimerManager.cpp @@ -80,8 +80,8 @@ duration_t LoopTimerManager::get_lag() const { return this->elapsed_time - this->elapsed_fixed_time; } -duration_t LoopTimerManager::get_scaled_fixed_delta_time() const { - return this->fixed_delta_time * this->time_scale; +float LoopTimerManager::get_scaled_fixed_delta_time() const { + return (this->fixed_delta_time * this->time_scale).count(); } void LoopTimerManager::set_fixed_delta_time(float seconds) { diff --git a/src/crepe/manager/LoopTimerManager.h b/src/crepe/manager/LoopTimerManager.h index 91403e4..dcbe21c 100644 --- a/src/crepe/manager/LoopTimerManager.h +++ b/src/crepe/manager/LoopTimerManager.h @@ -103,7 +103,7 @@ public: * * \return The fixed delta time, scaled by the current time scale, in seconds. */ - duration_t get_scaled_fixed_delta_time() const; + float get_scaled_fixed_delta_time() const; private: //! Friend relation to use start,enforce_frame_rate,get_lag,update,advance_fixed_update. diff --git a/src/crepe/system/AISystem.cpp b/src/crepe/system/AISystem.cpp index 680dbb8..e9d8fa7 100644 --- a/src/crepe/system/AISystem.cpp +++ b/src/crepe/system/AISystem.cpp @@ -16,7 +16,7 @@ void AISystem::update() { LoopTimerManager & loop_timer = mediator.loop_timer; RefVector ai_components = mgr.get_components_by_type(); - float dt = loop_timer.get_scaled_fixed_delta_time().count(); + float dt = loop_timer.get_scaled_fixed_delta_time(); // Loop through all AI components for (AI & ai : ai_components) { diff --git a/src/crepe/system/PhysicsSystem.cpp b/src/crepe/system/PhysicsSystem.cpp index 6970e03..ca10b25 100644 --- a/src/crepe/system/PhysicsSystem.cpp +++ b/src/crepe/system/PhysicsSystem.cpp @@ -11,7 +11,6 @@ #include "PhysicsSystem.h" using namespace crepe; -using namespace std::chrono; void PhysicsSystem::update() { @@ -19,7 +18,7 @@ void PhysicsSystem::update() { ComponentManager & mgr = mediator.component_manager; LoopTimerManager & loop_timer = mediator.loop_timer; RefVector rigidbodies = mgr.get_components_by_type(); - float dt = loop_timer.get_scaled_fixed_delta_time().count(); + float dt = loop_timer.get_scaled_fixed_delta_time(); float gravity = Config::get_instance().physics.gravity; for (Rigidbody & rigidbody : rigidbodies) { -- cgit v1.2.3