Проекционные лучи применяются для считывания физического мира вдоль линейного луча. Чтобы бросить луч в физическом мире игры, вы предоставляете стартовую и завершающую позицию, а также набор групп столкновения, которые нужно проверить на попадание.
Если луч достигает физического объекта вы получите информацию об объекте, в который попал луч. Лучи пересекаются с динамическими, кинематическими и статическими объектами. Лучи не взаимодействуют с триггерами.
function update(self, dt)
-- запросить трассировку лучом
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
-- реагируем на попадание (см. сообщение 'ray_cast_response' для всех значений)
print(result.id)
end
end
Проекционные лучи игнорируют объекты столкновения, которые содержат стартовую точку луча. Это ограничение библиотеки Box2D.
Did you spot an error or do you have a suggestion? Please let us know on GitHub!
GITHUB