diff --git a/src/modules/physics/box2d/Fixture.cpp b/src/modules/physics/box2d/Fixture.cpp index 641cc5107..1b6975a69 100644 --- a/src/modules/physics/box2d/Fixture.cpp +++ b/src/modules/physics/box2d/Fixture.cpp @@ -273,7 +273,8 @@ namespace box2d input.maxFraction = maxFraction; b2Transform transform(b2Vec2(x, y), b2Rot(r)); b2RayCastOutput output; - fixture->RayCast(&output, input, childIndex); + if (!fixture->RayCast(&output, input, childIndex)) + return 0; // Nothing hit. lua_pushnumber(L, Physics::scaleUp(output.normal.x)); lua_pushnumber(L, Physics::scaleUp(output.normal.y)); lua_pushnumber(L, output.fraction); diff --git a/src/modules/physics/box2d/Shape.cpp b/src/modules/physics/box2d/Shape.cpp index e8df14369..b9cf4d6b9 100644 --- a/src/modules/physics/box2d/Shape.cpp +++ b/src/modules/physics/box2d/Shape.cpp @@ -107,7 +107,8 @@ namespace box2d input.maxFraction = maxFraction; b2Transform transform(b2Vec2(x, y), b2Rot(r)); b2RayCastOutput output; - shape->RayCast(&output, input, transform, childIndex); + if (!shape->RayCast(&output, input, transform, childIndex)) + return 0; // No hit. lua_pushnumber(L, Physics::scaleUp(output.normal.x)); lua_pushnumber(L, Physics::scaleUp(output.normal.y)); lua_pushnumber(L, output.fraction);