Merge pull request #39880 from Cevantime/fix_laxist_one_way_shapes

Fix laxist collision detection on one way shapes
This commit is contained in:
Rémi Verschelde 2020-07-03 12:44:49 +02:00 committed by GitHub
commit 7af7590790
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -255,9 +255,8 @@ bool BodyPair2DSW::setup(real_t p_step) {
if (B->get_continuous_collision_detection_mode() == PhysicsServer2D::CCD_MODE_CAST_SHAPE) { if (B->get_continuous_collision_detection_mode() == PhysicsServer2D::CCD_MODE_CAST_SHAPE) {
motion_B = B->get_motion(); motion_B = B->get_motion();
} }
//faster to set than to check..
//bool prev_collided=collided; bool prev_collided = collided;
collided = CollisionSolver2DSW::solve(shape_A_ptr, xform_A, motion_A, shape_B_ptr, xform_B, motion_B, _add_contact, this, &sep_axis); collided = CollisionSolver2DSW::solve(shape_A_ptr, xform_A, motion_A, shape_B_ptr, xform_B, motion_B, _add_contact, this, &sep_axis);
if (!collided) { if (!collided) {
@ -285,8 +284,7 @@ bool BodyPair2DSW::setup(real_t p_step) {
return false; return false;
} }
//if (!prev_collided) { if (!prev_collided) {
{
if (A->is_shape_set_as_one_way_collision(shape_A)) { if (A->is_shape_set_as_one_way_collision(shape_A)) {
Vector2 direction = xform_A.get_axis(1).normalized(); Vector2 direction = xform_A.get_axis(1).normalized();
bool valid = false; bool valid = false;