Maison > interface Web > js tutoriel > Créer un Stream Deck personnalisé pour My D&D Table : résoudre l'intégration de la manette de jeu avec un SDK personnalisé

Créer un Stream Deck personnalisé pour My D&D Table : résoudre l'intégration de la manette de jeu avec un SDK personnalisé

Linda Hamilton
Libérer: 2024-10-01 20:18:29
original
753 Les gens l'ont consulté

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

En tant que joueur passionné de Donjons & Dragons et passionné de technologie, j'ai décidé d'améliorer ma configuration de jeu en créant une table basse personnalisée dotée d'un écran intégré. Ce tableau affiche des cartes, des jetons, joue des effets sonores et montre même des illustrations pour les joueurs. Tout cela passe par une plate-forme puissante appelée Foundry VTT, similaire à Roll20 mais avec un meilleur modèle de tarification et un système de modules ouverts étendu. C'est parfait pour personnaliser votre expérience sur table.

En explorant les moyens d'améliorer ma configuration, j'ai remarqué des modules qui permettaient d'intégrer les stream decks à Foundry. Ces outils offrent un accès rapide aux macros et aux commandes, rendant le jeu encore plus fluide. Cependant, après avoir vu le prix d'un stream deck (200 euros !), je n'étais pas prêt à faire cet investissement.

Puis je me suis souvenu de quelque chose : il y a quelques années, j'ai construit une machine d'arcade. Même si la machine a été démontée depuis longtemps, j'avais toujours les boutons et les cartes contrôleurs du projet. Avec un peu de créativité et une imprimante 3D, j'ai réalisé mon propre "stream deck" personnalisé en imprimant une petite boîte avec des emplacements pour les boutons.

Maintenant, j'avais le matériel prêt, mais l'intégrer à Foundry VTT représentait un défi. Je voulais utiliser l'API Gamepad dans le navigateur pour enregistrer mes pressions sur les boutons, mais j'ai été choqué par le manque de flexibilité dans la façon dont l'API gérait les entrées. L'approche par défaut consistait à utiliser une boucle while (true) pour interroger constamment l'état enfoncé de chaque bouton. Bien que cela fonctionne bien dans une boucle de jeu utilisant requestAnimationFrame, pour mes besoins, cela me semblait inefficace et franchement stupide. Je voulais simplement répondre aux pressions sur les boutons avec les écouteurs d'événements, pas vérifier constamment l'état de la manette de jeu dans une boucle sans fin.

Cela m'a amené à créer le SDK Gamepad que je partage aujourd'hui.

Avec ce SDK, j'ai simplifié le processus en permettant aux développeurs d'ajouter directement des écouteurs d'événements pour les pressions sur les boutons, les relâchements et les changements d'axe - aucune interrogation n'est requise. Il inclut également la prise en charge de la connexion et de la déconnexion des manettes de jeu, ce qui facilite l'intégration à des plates-formes telles que Foundry VTT ou à tout projet basé sur un navigateur.

En utilisant ce SDK, n'importe qui peut connecter son contrôleur personnalisé à une application basée sur un navigateur sans avoir à vérifier manuellement l'état de la manette de jeu. Pour ma table D&D, cela signifie désormais que je peux utiliser de manière transparente mon stream deck de fortune pour contrôler les macros, les actions et bien plus encore dans le jeu, tout cela grâce à quelques boutons et un peu de code.

Si vous êtes intéressé, consultez le SDK et n'hésitez pas à nous contacter si vous cherchez à résoudre des problèmes similaires !

Le Github : https://github.com/RamonGebben/Gamepad-SDK
NPM : https://www.npmjs.com/package/@pindakaasman/gamepad-sdk

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal