Ray casts are used to read the physics world along a linear ray. To cast a ray into the physics world, you provide a start and end position as well as a set of collision groups to test against.
If the ray hits a physics object you will get information about the object it hit. Rays intersect with dynamic, kinematic and static objects. They do not interact with triggers.
function update(self, dt)
-- request ray cast
local my_start = vmath.vector3(0, 0, 0)
local my_end = vmath.vector3(100, 1000, 1000)
local my_groups = { hash("my_group1"), hash("my_group2") }
local result = physics.raycast(my_start, my_end, my_groups)
if result then
-- act on the hit (see 'ray_cast_response' message for all values)
print(result.id)
end
end
Ray casts will ignore collision objects that contain the starting point of the ray. This is a limitation in Box2D.
Did you spot an error or do you have a suggestion? Please let us know on GitHub!
GITHUB