«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Создание пользовательской стрим-колоды для моего стола D&D: решение проблемы интеграции геймпада с помощью специального SDK

Создание пользовательской стрим-колоды для моего стола D&D: решение проблемы интеграции геймпада с помощью специального SDK

Опубликовано 8 ноября 2024 г.
Просматривать:503

Building a Custom Stream Deck for My D&D Table: Solving Gamepad Integration with a Custom SDK

Как страстный игрок в Dungeons & Dragons и энтузиаст технологий, я решил улучшить настройки своей игры, создав специальный журнальный столик со встроенным экраном. В этой таблице отображаются карты, жетоны, воспроизводятся звуковые эффекты и даже отображаются иллюстрации для игроков. Все это осуществляется через мощную платформу Foundry VTT, которая похожа на Roll20, но с лучшей ценовой моделью и обширной системой открытых модулей. Он идеально подходит для настройки вашего настольного компьютера.

Изучая способы улучшения моей настройки, я заметил модули, которые позволяли интегрировать потоковые колоды с Foundry. Эти инструменты обеспечивают быстрый доступ к макросам и командам, делая игровой процесс еще более плавным. Однако, увидев цену стрим-деки (200 евро!), я не был готов к таким инвестициям.

Тогда я кое-что вспомнил — несколько лет назад я построил игровой автомат. Хоть машина и давно разобрана, у меня остались кнопки и платы контроллера из проекта. Проявив немного творчества и 3D-принтер, я сделал свою собственную «потоковую колоду», распечатав небольшую коробочку с прорезями для кнопок.

Теперь у меня было готово оборудование, но интеграция его с Foundry VTT представляла собой проблему. Я хотел использовать API геймпада в браузере для регистрации нажатий кнопок, но был шокирован отсутствием гибкости в том, как API обрабатывает входные данные. Подход по умолчанию заключался в использовании цикла while(true) для постоянного опроса состояния нажатой каждой кнопки. Хотя это прекрасно работает в игровом цикле с использованием requestAnimationFrame, для моих целей это показалось неэффективным и, честно говоря, глупым. Я хотел просто реагировать на нажатия кнопок с помощью прослушивателей событий, а не постоянно проверять состояние геймпада в бесконечном цикле.

Это привело меня к созданию SDK для геймпада, которым я делюсь сегодня.

С помощью этого SDK я упростил процесс, позволив разработчикам напрямую добавлять прослушиватели событий для нажатия и отпускания кнопок, а также изменения осей — опрос не требуется. Он также включает поддержку подключения и отключения геймпадов, что упрощает интеграцию с такими платформами, как Foundry VTT, или любым браузерным проектом.

Используя этот SDK, любой может подключить свой собственный контроллер к браузерному приложению без необходимости вручную проверять состояние геймпада. Для моей таблицы D&D это теперь означает, что я могу легко использовать свою импровизированную потоковую колоду для управления внутриигровыми макросами, действиями и многим другим — и все это благодаря нескольким кнопкам и небольшому коду.

Если вам интересно, ознакомьтесь с SDK и обращайтесь, если хотите решить аналогичные проблемы!

Github: https://github.com/RamonGebben/Gamepad-SDK
НПМ: https://www.npmjs.com/package/@pindakaasman/gamepad-sdk

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/ramongebben/building-a-custom-stream-deck-for-my-dd-table-solve-gamepad-integration-with-a-custom-sdk-5c2h? 1. Если есть какие-либо нарушения, свяжитесь с [email protected], чтобы удалить их.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3