diff --git a/servers/physics_2d/body_pair_2d_sw.cpp b/servers/physics_2d/body_pair_2d_sw.cpp index 35f19605df3..ba0358a1f23 100644 --- a/servers/physics_2d/body_pair_2d_sw.cpp +++ b/servers/physics_2d/body_pair_2d_sw.cpp @@ -298,19 +298,17 @@ bool BodyPair2DSW::setup(float p_step) { if (A->is_using_one_way_collision()) { Vector2 direction = A->get_one_way_collision_direction(); bool valid=false; - for(int i=0;iget_linear_velocity().dot(direction)>=0){ + for(int i=0;iget_linear_velocity().dot(direction)<0) - continue; - - if (!c.reused) { - continue; + valid=true; + break; } - - valid=true; } if (!valid) { @@ -323,20 +321,17 @@ bool BodyPair2DSW::setup(float p_step) { if (B->is_using_one_way_collision()) { Vector2 direction = B->get_one_way_collision_direction(); bool valid=false; - for(int i=0;iget_linear_velocity().dot(direction)>=0){ + for(int i=0;iget_linear_velocity().dot(direction)<0) - continue; - - if (!c.reused) { - continue; + valid=true; + break; } - - valid=true; } if (!valid) { collided=false;