feat: change the character controller’s solve_character_collision_impulses to take multiple CharacterCollision (#646)

* character controller: solve multiple collisions

* add solve multiple collisions to changelog

* chore: apply review comments

---------

Co-authored-by: Sébastien Crozet <sebcrozet@dimforge.com>
This commit is contained in:
Thierry Berger
2024-06-09 13:20:58 +02:00
committed by GitHub
parent a8a0f297f5
commit 8160b4ebdb
3 changed files with 43 additions and 15 deletions

View File

@@ -811,19 +811,16 @@ impl<'a, 'b, 'c, 'd, 'e, 'f> Testbed<'a, 'b, 'c, 'd, 'e, 'f> {
QueryFilter::new().exclude_rigid_body(character_handle),
|c| collisions.push(c),
);
for collision in &collisions {
controller.solve_character_collision_impulses(
phx.integration_parameters.dt,
&mut phx.bodies,
&phx.colliders,
&phx.query_pipeline,
character_collider.shape(),
character_mass,
collision,
QueryFilter::new().exclude_rigid_body(character_handle),
)
}
controller.solve_character_collision_impulses(
phx.integration_parameters.dt,
&mut phx.bodies,
&phx.colliders,
&phx.query_pipeline,
character_collider.shape(),
character_mass,
collisions,
QueryFilter::new().exclude_rigid_body(character_handle),
);
let character_body = &mut phx.bodies[character_handle];
let pos = character_body.position();