Heim >Web-Frontend >js-Tutorial >Erstellen eines benutzerdefinierten Stream-Decks für meinen D&D-Tisch: Lösung der Gamepad-Integration mit einem benutzerdefinierten SDK
Als leidenschaftlicher Dungeons & Dragons-Spieler und Technikbegeisterter habe ich beschlossen, mein Spiel-Setup zu verbessern, indem ich einen maßgeschneiderten Couchtisch mit integriertem Bildschirm erstellt habe. Dieser Tisch zeigt Karten, Spielsteine, spielt Soundeffekte ab und zeigt sogar Kunstwerke für Spieler. All dies läuft über eine leistungsstarke Plattform namens Foundry VTT, die Roll20 ähnelt, jedoch über ein besseres Preismodell und ein umfangreiches offenes Modulsystem verfügt. Es ist perfekt, um Ihr Tischerlebnis individuell zu gestalten.
Als ich nach Möglichkeiten suchte, mein Setup zu verbessern, fielen mir Module auf, die die Integration von Stream-Decks in Foundry ermöglichten. Diese Tools bieten schnellen Zugriff auf Makros und Befehle und machen das Gameplay noch flüssiger. Nachdem ich jedoch den Preis für ein Stream-Deck gesehen hatte (200 Euro!), war ich nicht bereit, diese Investition zu tätigen.
Dann fiel mir etwas ein – vor ein paar Jahren habe ich einen Arcade-Automaten gebaut. Obwohl die Maschine längst zerlegt ist, hatte ich noch die Knöpfe und Controllerplatinen aus dem Projekt. Mit etwas Kreativität und einem 3D-Drucker habe ich mein eigenes „Stream-Deck“ erstellt, indem ich eine kleine Schachtel mit Schlitzen für die Knöpfe gedruckt habe.
Jetzt hatte ich die Hardware bereit, aber die Integration in Foundry VTT stellte eine Herausforderung dar. Ich wollte die Gamepad-API im Browser verwenden, um meine Tastendrücke zu registrieren, war aber schockiert über die mangelnde Flexibilität bei der Verarbeitung von Eingaben durch die API. Der Standardansatz bestand darin, eine while(true)-Schleife zu verwenden, um ständig den gedrückten Zustand jeder Taste abzufragen. Während dies in einer Spielschleife mit requestAnimationFrame gut funktioniert, fühlte es sich für meine Zwecke ineffizient und ehrlich gesagt dumm an. Ich wollte einfach mit Ereignis-Listenern auf Tastendrücke reagieren und nicht ständig den Gamepad-Status in einer Endlosschleife überprüfen.
Das hat mich dazu gebracht, das Gamepad SDK zu erstellen, das ich heute teile.
Mit diesem SDK habe ich den Prozess vereinfacht, indem ich es Entwicklern ermöglicht habe, Ereignis-Listener für Tastendrücke, Loslassen und Achsenänderungen direkt hinzuzufügen – keine Abfrage erforderlich. Es bietet auch Unterstützung für das Anschließen und Trennen von Gamepads, was die Integration in Plattformen wie Foundry VTT oder jedes andere browserbasierte Projekt erleichtert.
Durch die Verwendung dieses SDK kann jeder seinen benutzerdefinierten Controller mit einer browserbasierten App verbinden, ohne den Gamepad-Status manuell überprüfen zu müssen. Für meinen D&D-Tisch bedeutet das jetzt, dass ich mein provisorisches Stream-Deck nahtlos verwenden kann, um Makros, Aktionen und mehr im Spiel zu steuern – alles dank ein paar Tasten und ein wenig Code.
Wenn Sie interessiert sind, schauen Sie sich das SDK an und wenden Sie sich gerne an uns, wenn Sie ähnliche Probleme lösen möchten!
Der Github: https://github.com/RamonGebben/Gamepad-SDK
NPM: https://www.npmjs.com/package/@pindakaasman/gamepad-sdk
Das obige ist der detaillierte Inhalt vonErstellen eines benutzerdefinierten Stream-Decks für meinen D&D-Tisch: Lösung der Gamepad-Integration mit einem benutzerdefinierten SDK. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!