Leap Motion - это небольшое устройство, способное улавливать движение руки: давайте воспользуемся им, чтобы понять основные жесты, как в популярной игре "камень, ножницы, бумага". Источник: https://github.com/antigones/lm_rock_paper_scissors
Спасибо Никола Гульельми за идею применения распознавания жестов в игре.
Контроллер Leap Motion - это небольшое настольное устройство с ИК-датчиком и камерой, используемой для захвата жестов рук для взаимодействия с программным обеспечением и играми.
Даже если устройство не новое, веб-сайт производителя по-прежнему предоставляет API-интерфейсы, и даже сейчас все еще можно разрабатывать приложения, основанные на нем.
В этом проекте вы будете использовать Leap Motion, чтобы сначала «интерпретировать» некоторые базовые жесты, а затем распознавать жесты «камень, ножницы, бумага» с помощью очень наивного алгоритма. Кроме того, вы отобразите распознанный жест на веб-странице.
Включение веб-взаимодействия
Прежде чем продолжить работу над проектом, вам необходимо включить веб-взаимодействие в настройках Leap Motion.
Веб-страница
Веб-страница для этого проекта действительно проста, поскольку отображает только div с результатом обнаружения:
Использование API JavaScript Leap Motion
Интегрировать Javascript API Leap Motion очень просто: достаточно добавить скрипт в раздел ‹head›… ‹/head› на веб-странице:
<script src=”//js.leapmotion.com/leap-1.1.0.min.js”></script>
Взаимодействие с контроллером - это всего лишь вопрос:
- подключение к устройству
- цикл по полученному кадру для выполнения некоторой «логики»
Вы можете подключиться к устройству, инициализировав новый контроллер и вызвав метод connect ():
var controller = (new Leap.Controller); controller.connect();
Как только устройство подключено, страница начинает получать кадры, которые можно зациклить:
Leap.loop(controllerOptions, function(frame) { // here you are looping over the frames … })
Обнаружение жестов рук
Если вы думаете о жесте «камень, ножницы, бумага», вы можете найти очень наивный способ решить, какой жест делает пользователь в данный момент:
- рок: без пальцев
- ножницы: два пальца вытянуты
- бумага: пять пальцев вытянуты
Действительно наивно, но очень просто!
API Leap Motion предоставляют свойства кадра, чтобы определить, сколько рук находится над датчиком и сколько пальцев на руке.
frame.hands
frame.hands [i] .fingers
Вы можете использовать эту функцию для подсчета вытянутых пальцев:
Результат
В результате у вас есть веб-страница, способная отображать ваш жест «Камень, ножницы, бумага» в реальном времени!