В феврале 2012 года через сайт free-lance.ru со мной связался заказчик, предложивший заняться разработкой приложений для интерактивных столов. Эта идея показалась мне интересной, так что я с удовольствием согласился.
Для начала мы протестировали оборудование и выяснили, что флешевские TouchEvent-ы на нём не работают. Было решено написать собственные события, принимая через сокеты информацию о касаниях по протоколу TUIO. По сути нужно было получать данные о всех точках в формате XML и сравнивать с полученными ранее, чтобы определить, какая точка была добавлена, какая удалена, а какая сместилась.
Получившуюся в результате библиотечку я использовал позднее ещё в нескольких проектах. Вот как мы тестировали её на конечном устройстве:
После того, как базовая часть проекта была хорошо протестирована и отлажена, я приступил к реализации конкретной идеи.
По линиям, прочерченным между точками, нужно было пустить поезда, которые должны были не только реагировать на смещение, удаление и добавление точек, но и скрывать или снова отображать вагоны, выходящие за их пределы.
В процессе работы выяснилось, что flash player на оборудовании заказчика имеет сильно ограниченный запас производительности, так что больше половины затраченного на разработку времени ушло не на написание кода, а на его оптимизацию.
После того, как я добился-таки достаточно высокого FPS, проект был принят и я сразу же приступил к следующему.