From 081be0a0f195f29161f25f0fec78708d12ef3a42 Mon Sep 17 00:00:00 2001 From: Sara <sara@saragerretsen.nl> Date: Tue, 24 Oct 2023 23:50:10 +0200 Subject: [PATCH] constraints now affect velocity --- src/physics_entity.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/physics_entity.c b/src/physics_entity.c index 0752109..a19dd36 100644 --- a/src/physics_entity.c +++ b/src/physics_entity.c @@ -78,6 +78,10 @@ void physics_entity_solve_contacts(PhysicsEntity self, List* contacts) { if(iteration == 1) LOG_WARNING("gave up on solving %zu contacts", contacts->len); } + Vector dir = vnormalizedf(vsubf(rigidbody_get_transform(body)->position, pre_solve.position)); + Vector vel = rigidbody_get_velocity(body); + vel = vsubf(vel, vprojectf(dir, vel)); + rigidbody_set_velocity(body, vel); } void physics_entity_update(PhysicsEntity self) {