From 053a4927989a6b26b5291aa3ce22005da092177b Mon Sep 17 00:00:00 2001 From: dasasdhba Date: Fri, 24 Oct 2025 12:49:55 +0800 Subject: [PATCH] PhysicsServer2D: Correct safe margin in `test_body_motion` --- modules/godot_physics_2d/godot_space_2d.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/modules/godot_physics_2d/godot_space_2d.cpp b/modules/godot_physics_2d/godot_space_2d.cpp index b3d7cea48775..f19ea43f40aa 100644 --- a/modules/godot_physics_2d/godot_space_2d.cpp +++ b/modules/godot_physics_2d/godot_space_2d.cpp @@ -993,7 +993,11 @@ bool GodotSpace2D::test_body_motion(GodotBody2D *p_body, const PhysicsServer2D:: r_result->travel = safe * p_parameters.motion; r_result->remainder = p_parameters.motion - safe * p_parameters.motion; - r_result->travel += (body_transform.get_origin() - p_parameters.from.get_origin()); + if (recovered) { + r_result->travel += (body_transform.get_origin() - p_parameters.from.get_origin()); + } else { + r_result->travel -= margin * motion_normal; + } } collided = true;