Read this manual in English

Проекционные лучи

Проекционные лучи применяются для считывания физического мира вдоль линейного луча. Чтобы бросить луч в физическом мире игры, вы предоставляете стартовую и завершающую позицию, а также набор групп столкновения, которые нужно проверить на попадание.

Если луч достигает физического объекта вы получите информацию об объекте, в который попал луч. Лучи пересекаются с динамическими, кинематическими и статическими объектами. Лучи не взаимодействуют с триггерами.

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.