This translation is community contributed and may not be up to date. We only maintain the English version of the documentation. 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.