diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/crepe/system/PhysicsSystem.cpp | 46 | ||||
-rw-r--r-- | src/test/ParticleTest.cpp | 3 |
2 files changed, 33 insertions, 16 deletions
diff --git a/src/crepe/system/PhysicsSystem.cpp b/src/crepe/system/PhysicsSystem.cpp index a5b6bde..402dfab 100644 --- a/src/crepe/system/PhysicsSystem.cpp +++ b/src/crepe/system/PhysicsSystem.cpp @@ -12,8 +12,10 @@ using namespace crepe; void PhysicsSystem::update() { ComponentManager & mgr = ComponentManager::get_instance(); - std::vector<std::reference_wrapper<Rigidbody>> rigidbodies = mgr.get_components_by_type<Rigidbody>(); - std::vector<std::reference_wrapper<Transform>> transforms = mgr.get_components_by_type<Transform>(); + std::vector<std::reference_wrapper<Rigidbody>> rigidbodies + = mgr.get_components_by_type<Rigidbody>(); + std::vector<std::reference_wrapper<Transform>> transforms + = mgr.get_components_by_type<Transform>(); double gravity = Config::get_instance().physics.gravity; for (Rigidbody & rigidbody : rigidbodies) { @@ -26,7 +28,9 @@ void PhysicsSystem::update() { // Add gravity if (rigidbody.data.use_gravity) { - rigidbody.data.linear_velocity.y += (rigidbody.data.mass * rigidbody.data.gravity_scale * gravity); + rigidbody.data.linear_velocity.y + += (rigidbody.data.mass * rigidbody.data.gravity_scale + * gravity); } // Add damping if (rigidbody.data.angular_damping != 0) { @@ -37,22 +41,34 @@ void PhysicsSystem::update() { } // Max velocity check - if (rigidbody.data.angular_velocity > rigidbody.data.max_angular_velocity) { - rigidbody.data.angular_velocity = rigidbody.data.max_angular_velocity; - } else if (rigidbody.data.angular_velocity < -rigidbody.data.max_angular_velocity) { - rigidbody.data.angular_velocity = -rigidbody.data.max_angular_velocity; + if (rigidbody.data.angular_velocity + > rigidbody.data.max_angular_velocity) { + rigidbody.data.angular_velocity + = rigidbody.data.max_angular_velocity; + } else if (rigidbody.data.angular_velocity + < -rigidbody.data.max_angular_velocity) { + rigidbody.data.angular_velocity + = -rigidbody.data.max_angular_velocity; } - if (rigidbody.data.linear_velocity.x > rigidbody.data.max_linear_velocity.x) { - rigidbody.data.linear_velocity.x = rigidbody.data.max_linear_velocity.x; - } else if (rigidbody.data.linear_velocity.x < -rigidbody.data.max_linear_velocity.x) { - rigidbody.data.linear_velocity.x = -rigidbody.data.max_linear_velocity.x; + if (rigidbody.data.linear_velocity.x + > rigidbody.data.max_linear_velocity.x) { + rigidbody.data.linear_velocity.x + = rigidbody.data.max_linear_velocity.x; + } else if (rigidbody.data.linear_velocity.x + < -rigidbody.data.max_linear_velocity.x) { + rigidbody.data.linear_velocity.x + = -rigidbody.data.max_linear_velocity.x; } - if (rigidbody.data.linear_velocity.y > rigidbody.data.max_linear_velocity.y) { - rigidbody.data.linear_velocity.y = rigidbody.data.max_linear_velocity.y; - } else if (rigidbody.data.linear_velocity.y < -rigidbody.data.max_linear_velocity.y) { - rigidbody.data.linear_velocity.y = -rigidbody.data.max_linear_velocity.y; + if (rigidbody.data.linear_velocity.y + > rigidbody.data.max_linear_velocity.y) { + rigidbody.data.linear_velocity.y + = rigidbody.data.max_linear_velocity.y; + } else if (rigidbody.data.linear_velocity.y + < -rigidbody.data.max_linear_velocity.y) { + rigidbody.data.linear_velocity.y + = -rigidbody.data.max_linear_velocity.y; } // Move object diff --git a/src/test/ParticleTest.cpp b/src/test/ParticleTest.cpp index 9e8a9b0..72f903b 100644 --- a/src/test/ParticleTest.cpp +++ b/src/test/ParticleTest.cpp @@ -20,7 +20,8 @@ protected: ParticleSystem particle_system; void SetUp() override { ComponentManager & mgr = ComponentManager::get_instance(); - std::vector<std::reference_wrapper<Transform>> transforms = mgr.get_components_by_id<Transform>(0); + std::vector<std::reference_wrapper<Transform>> transforms + = mgr.get_components_by_id<Transform>(0); if (transforms.empty()) { GameObject game_object(0, "", "", Vector2{0, 0}, 0, 0); |