Fix crash caused by the removal of a kinematic body.

This commit is contained in:
Crozet Sébastien
2020-09-14 22:22:55 +02:00
parent a60e1e030d
commit e16b7722be
3 changed files with 87 additions and 30 deletions

View File

@@ -65,21 +65,22 @@ pub fn init_world(testbed: &mut Testbed) {
* Setup a callback to control the platform.
*/
testbed.add_callback(move |_, physics, _, _, time| {
let mut platform = physics.bodies.get_mut(platform_handle).unwrap();
let mut next_pos = platform.position;
if let Some(mut platform) = physics.bodies.get_mut(platform_handle) {
let mut next_pos = platform.position;
let dt = 0.016;
next_pos.translation.vector.y += (time * 5.0).sin() * dt;
next_pos.translation.vector.z += time.sin() * 5.0 * dt;
let dt = 0.016;
next_pos.translation.vector.y += (time * 5.0).sin() * dt;
next_pos.translation.vector.z += time.sin() * 5.0 * dt;
if next_pos.translation.vector.z >= rad * 10.0 {
next_pos.translation.vector.z -= dt;
if next_pos.translation.vector.z >= rad * 10.0 {
next_pos.translation.vector.z -= dt;
}
if next_pos.translation.vector.z <= -rad * 10.0 {
next_pos.translation.vector.z += dt;
}
platform.set_next_kinematic_position(next_pos);
}
if next_pos.translation.vector.z <= -rad * 10.0 {
next_pos.translation.vector.z += dt;
}
platform.set_next_kinematic_position(next_pos);
});
/*