Ein echtes Spielerlebnis mit der Gamepad -API
Key Takeaways
- Die Gamepad-API, ein vorgeschlagener Standard des W3C, bietet eine konsistente API über Browser für die Verbindung von Gaming-Eingabegeräten wie ein Xbox-Controller an einen Computer für browserbasierte Erlebnisse.
- Die Gamepad -API bietet Flexibilität und bietet Zugriff auf Schaltflächen und Achsen mit normalisierten Werten, und das Gamepad -Objekt bietet detaillierte Informationen zum Hersteller und Modell des verbundenen Gamepads.
- Das PXGamePad ist eine Helferklasse, die eine höhere Darstellung eines Standard -Gamepad wie den Xbox One -Controller bietet, der die Taste und die Achsenindizes zu vertrauten Namen zuordnen, wie sie auf dem Xbox -Controller gekennzeichnet sind.
- Während die Gamepad-API in der Lage ist, mehrere Spieler mit eigenen Gamepads zu unterstützen .
Dieser Artikel ist Teil einer Web -Dev -Serie von Microsoft. Vielen Dank, dass Sie die Partner unterstützt haben, die SitePoint ermöglichen.
Gaming im Web hat mit HTML5 -Technologien wie Leinwand, WebGL und Webaudio einen langen Weg zurückgelegt. Es ist jetzt möglich, Grafiken und Sound im Browser mit hoher Fidelity zu erstellen. Um jedoch ein echtes Spielerlebnis zu bieten, benötigen Sie Eingabereiche für Spiele. Die Gamepad -API ist ein vorgeschlagener Standard des W3C und soll eine konsistente API über Browser hinweg liefern.
Mit der Gamepad-API können Benutzer Geräte wie einen Xbox-Controller an einen Computer anschließen und für Browser-basierte Erlebnisse verwenden! Wenn Sie ein Gamepad haben, stecken Sie ihn in Ihren Computer an und drücken Sie dann eine Taste. Sie sehen den Xbox -Controller unten auf, um jede Bewegung, die Sie durchführen, zu spiegeln!

probieren Sie es hier interaktiv aus.
Dieses Tutorial ist das dritte in einer Serie auf Flight Arcade, die demonstrieren, was auf der Webplattform möglich ist, und im neuen Microsoft Edge -Browser und im Renderning Engine von EdgeHtml. Die ersten beiden Artikel über WebGL- und Web -API sowie interaktive Code sowie Beispiele für diesen Artikel finden Sie unter flugarcade.com.
[YouTube XYAQ9TPMXRA]flexible API
Die Gamepad -API ist intelligent unter Berücksichtigung von Flexibilität ausgestattet. Auf einer grundlegenden Ebene bietet es Zugriff auf Tasten und Achsen. Die Schaltflächenwerte reichen von [0 .. 1], während die Achsen von [-1 .. 1] reichen. Alle Werte werden auf diese Bereiche normalisiert, sodass Entwickler ein konstantes Verhalten zwischen Geräten erwarten können.
Das GamePad -Objekt enthält detaillierte Informationen zum Hersteller und Modell des angeschlossenen Gamepad. Nützlicher ist eine Kartierungseigenschaft, die die allgemeine Art des Gamepad beschreibt. Derzeit ist die einzige unterstützte Zuordnung Standard, die dem Controller -Layout entspricht, das von vielen beliebten Spielekonsolen wie der Xbox verwendet wird.
Die Standard -Controller -Mapping hat zwei Sticks, von denen jeweils 2 Achsen (x und y) dargestellt werden. Es enthält auch ein D-Pad, 4 Spiele, Top-Tasten und Trigger: Alle als Tasten in der Gamepad-API dargestellt.
aktuelle Xbox -Controller -Berichtstaststatus als 0 (normaler Zustand) oder 1 (gedrückt). Sie können sich jedoch vorstellen, dass zukünftige Controller die für jede Taste angewendete Kraft melden könnten.
Das Xbox D-Pad meldet auch diskrete Werte (0 oder 1), aber die Sticks liefern kontinuierliche Werte über den gesamten Achsenbereich [-1 .. 1]. Diese zusätzliche Präzision erleichtert es viel einfacher, das Flugzeug in unseren Flug Arcade -Missionen zu fliegen.
pxgamepad
Die von der Gamepad -API bereitgestellte Reihe von Tasten und Achsen ist als API auf niedriger Ebene perfekt. Beim Schreiben eines Spiels ist es jedoch schön, eine höhere Darstellung eines Standard -Gamepad wie dem Xbox One -Controller zu haben. Wir haben eine Helferklasse namens PXGamePad erstellt, die die Taste und die Achsenindizes auf die bekannteren Namen, die im Xbox -Controller gekennzeichnet sind
Wir werden ein paar interessante Teile der Bibliothek durchlaufen, aber der vollständige Quellcode (MIT -Lizenz) ist hier verfügbar: https://github.com/thinkpixellab/pxgamepadDie Standard -Gamepad -API bietet Tastenstatus als Array von Schaltflächen. Auch diese API ist für die Flexibilität ausgelegt, die Controller mit verschiedenen Tastenzählungen ermöglicht. Beim Schreiben eines Spiels ist es jedoch viel einfacher, Code zu schreiben und zu lesen, bei dem die Standard -Kartentastennamen verwendet werden.
Zum Beispiel ist hier der Code mit der HTML5 -Gamepad -API zu überprüfen, ob der linke Auslöser derzeit gedrückt wird:



Eine weitere Einschränkung der HTML5 -Gamepad -API ist, dass es keine Ereignisse auf Tasteebene bietet. Es ist üblich, dass ein Spieleentwickler ein einzelnes Ereignis für einen Knopfdruck aktivieren möchte. In Flugbogenbogen sind die Zünd- und Bremsknöpfe gute Beispiele. PXGamePad Watches -Schaltflächenstatus und ermöglicht es Anrufern, sich für Benachrichtigungen bei der Schaltfläche zu registrieren.

Hier ist die vollständige Liste der benannten Schaltflächen, die von pxgamepad unterstützt werden:
- a
- b
- x
- y
- links
- rechten
- linksTtrigger
- righttrigger
- auswählen
- starten
- linker
- rechter Stift
- dpadup
- dpaddown
- dpadleft
- dpadright
Erhalten des aktuellen Gamepad
Es gibt zwei Methoden zum Abrufen des Gamepad -Objekts. Die Gamepad -API fügt dem Navigator -Objekt mit dem Namen getgamepads () eine Methode hinzu, die ein Array aller verbundenen Gamepads zurückgibt. Es gibt auch neue GamePadConnected- und Gamepaddisconnected -Veranstaltungen, die abgefeuert werden, wenn ein neues Gamepad verbunden oder getrennt wurde. Zum Beispiel speichert der PXGamePad -Helfer das letzte verbundene Gamepad:

Und hier ist der Helfer, mit dem das erste Standard -Gamepad mit dem Navigator.getGamepads () API:
abgerufen wird:
Die PXGamePad -Helferklasse wurde für das einfache Szenario entwickelt, in dem ein einzelner Benutzer ein Spiel mit einem Standard -Gamepad spielt. Die neuesten Browser wie Microsoft Edge unterstützen die W3C Gampepad -API. Ältere Versionen einiger anderer Browser unterstützten jedoch nur Teile der aufkommenden Spezifikation. Das pxgamepad hört die Veranstaltungen für gamepadconnected an und fällt bei Bedarf auf die Liste der Liste aller Gamepads zurück.
Zukunft von Gamepad
Während sich PXGamePad auf das einfache, häufigste Szenario konzentriert, ist die Gamepad -API in der Lage, mehrere Spieler mit jeweils eigenem Gamepad zu unterstützen. Eine mögliche Verbesserung für PXGamePad könnte darin bestehen, eine Kurs im Manager-Stil bereitzustellen, die die Verbindung mehrerer Gamepads verfolgt und sie in einem Spiel an mehrere Spieler ordnet. Ein anderer kann darin bestehen, dass Benutzer die Schaltflächenfunktionen in ihren Gamepads neu aufstellen oder anpassen können.
Wir freuen uns auch über das Potenzial des Gamepads für Nicht-Spiel-Szenarien. Mit dem Aufstieg von WebGL sehen wir eine Vielzahl innovativer Verwendungszwecke für 3D im Web. Das könnte bedeuten, die Region Mt. Everest in 3D mit Gletschern zu erforschen. Oder betrachten Sie die assyrische Sammlung des British Museum dank Cyarks Bemühungen, wichtige Weltstandorte und Artefakte digital zu erhalten.
Während der Entwicklung von Flugbogenbogen verwendeten wir häufig Blender und andere 3D -Tools, um Modelle für babylon.js zu verarbeiten. Einige Entwickler und Künstler verwenden ein Gerät namens 3D -Maus, um 3D -Modelle zu manipulieren und zu navigieren. Diese Geräte verfolgen die Bewegung eines einzelnen Knopfes durch sechs Achsen! Sie machen es wirklich einfach und schnell, Modelle zu manipulieren. Über das Spielen hinaus werden sie in einer Vielzahl interessanter Anwendungen verwendet, von der Ingenieurwesen bis zur medizinischen Bildgebung. Während wir Flugbogengamepad -Unterstützung hinzufügten, waren wir überrascht zu erfahren, dass die Gamepad -API unseren 3D -Spacemouse feststellte und Bewegungsdaten für alle sechs Achsen bereitstellte!
Es ist aufregend, sich alle Möglichkeiten vorzustellen, die die neue Gamepad -API bietet. Jetzt ist eine großartige Zeit, um mit der neuen Gamepad -API zu experimentieren und präzise Kontrolle und viel Spaß für Ihr nächstes Spiel oder Ihre nächste Anwendung zu verleihen!
mehr praktisch mit JavaScript
Microsoft hat eine Reihe kostenloser Lernen bei vielen Open -Source -JavaScript -Themen und wir sind auf der Aufgabe, mit Microsoft Edge viel mehr zu kreieren. Hier finden Sie einige zum Auschecken:
- Microsoft Edge Web Summit 2015 (eine vollständige Serie von dem, was Sie mit dem neuen Browser, neuen Webplattformfunktionen und Gastrednern aus der Community erwarten können)
- Build von // Build/und Windows 10 (einschließlich der neuen JavaScript -Engine für Websites und Apps)
- JavaScript vorantreiben, ohne das Web (Christian Heilmanns jüngster Keynote) zu brechen
- gehostete Web-Apps und Webplattform-Innovationen (ein tiefes Tauchgang zu Themen wie vielfältig.js)
- Praktische Leistungstipps, um Ihr HTML/JavaScript schneller zu gestalten (eine 7-teilige Serie vom reaktionsschnellen Design bis hin zu Casual Games bis zur Leistungsoptimierung)
und einige kostenlose Tools zum Einstieg: Visual Studio-Code, Azure-Versuch und Cross-Browser-Test-Tools-alle für Mac, Linux oder Windows verfügbar.
Dieser Artikel ist Teil der Web Dev Tech -Serie von Microsoft. Wir freuen uns, Microsoft Edge und die neue EdgeHTML -Rendering -Engine mit Ihnen zu teilen. Holen Sie sich kostenlose virtuelle Maschinen oder testen Sie remote auf Ihrem Mac, iOS, Android oder Windows Device @ modern.ie.Häufig gestellte Fragen zur Gamepad -API
Was ist die Gamepad-API? Diese API ist so konzipiert, dass sie mit jeder Art von Gamepad funktioniert, was sie zu einem vielseitigen Tool für Spieleentwickler macht. Es bietet eine Möglichkeit, direkt mit dem Gamepad zu interagieren, ohne eine Software oder einen Treiber von Drittanbietern durchzusetzen.
Wie funktioniert die Gamepad -API? Dies geschieht, indem Sie nach bestimmten Ereignissen wie Knopfdruck oder Joystick -Bewegungen und dann die entsprechende Aktion im Spiel auslösen. Dies ermöglicht ein eindringlicheres und interaktives Spielerlebnis.
Wie kann ich die Gamepad -API in meinen eigenen Spielen verwenden? Es im Code Ihres Spiels. Dies beinhaltet das Aufrufen der Funktionen der API und das Anhören der von ihm generierten Ereignisse. Sie können diese Ereignisse dann verwenden, um Aspekte Ihres Spiels zu kontrollieren, z. B. die Charakterbewegung oder Menünavigation.
Welche Arten von Gamepads sind mit der Gamepad -API kompatibel Seien Sie mit einer Vielzahl von Gamepads kompatibel. Dies beinhaltet Standard -Gamepads mit Tasten und Joysticks sowie spezialisiertere Controller wie Lenkräder oder Flugstangen. Die API kann auch mehrere Gamepads gleichzeitig bearbeiten, was Multiplayer -Spiele ermöglicht.
Kann ich die Gamepad -API mit anderen APIs verwenden? komplexere Spiele schaffen. Sie können beispielsweise die Gamepad -API verwenden, um die Charakterbewegung zu kontrollieren, während Sie eine andere API verwenden, um die Spielphysik oder Grafik zu bewältigen.
Wird die Gamepad -API von allen Browsern unterstützt? ist eine webbasierte Oberfläche, nicht alle Browser unterstützen sie derzeit. Die meisten modernen Browser, einschließlich Chrome, Firefox und Edge, unterstützen jedoch die Gamepad -API. Es ist immer eine gute Idee, die aktuelle Browser -Unterstützung für die API zu überprüfen, bevor Sie mit der Entwicklung beginnen. Die Gamepad -API beinhaltet das Erkennen des richtigen Gamepads, die Behandlung mehrerer Gamepads und das Umgang mit verschiedenen Tastenlayouts. Diese Probleme können normalerweise durch sorgfältiges Lesen der API -Dokumentation und das gründliche Testen des Spiels gelöst werden.
Kann die Gamepad -API für mobile Spiele verwendet werden? Desktop -Browser können auch für mobile Spiele verwendet werden. Dies erfordert jedoch ein Gamepad, das mit dem mobilen Gerät kompatibel ist, und die Benutzererfahrung ist möglicherweise nicht so reibungslos wie bei einem Desktop -Spiel. Kann die Gamepad -API testen, indem ein Gamepad mit Ihrem Computer angeschlossen und ein Spiel ausgeführt wird, das die API verwendet. Sie können dann Schaltflächen im Gamepad drücken und feststellen, ob die entsprechenden Aktionen im Spiel ausgelöst werden.
Wo kann ich mehr über die Gamepad -API erfahren? Dies schließt die offizielle API -Dokumentation sowie Tutorials und Führer auf verschiedenen Websites für Spielentwicklung ein. Sie können auch Beispiele für Spiele finden, die die API verwenden, um sie in Aktion zu sehen.
Das obige ist der detaillierte Inhalt vonEin echtes Spielerlebnis mit der Gamepad -API. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Häufig gestellte Fragen und Lösungen für das Ticket-Ticket-Ticket-Ticket in Front-End im Front-End-Entwicklungsdruck ist der Ticketdruck eine häufige Voraussetzung. Viele Entwickler implementieren jedoch ...

JavaScript ist der Eckpfeiler der modernen Webentwicklung. Zu den Hauptfunktionen gehören eine ereignisorientierte Programmierung, die Erzeugung der dynamischen Inhalte und die asynchrone Programmierung. 1) Ereignisgesteuerte Programmierung ermöglicht es Webseiten, sich dynamisch entsprechend den Benutzeroperationen zu ändern. 2) Die dynamische Inhaltsgenerierung ermöglicht die Anpassung der Seiteninhalte gemäß den Bedingungen. 3) Asynchrone Programmierung stellt sicher, dass die Benutzeroberfläche nicht blockiert ist. JavaScript wird häufig in der Webinteraktion, der einseitigen Anwendung und der serverseitigen Entwicklung verwendet, wodurch die Flexibilität der Benutzererfahrung und die plattformübergreifende Entwicklung erheblich verbessert wird.

Es gibt kein absolutes Gehalt für Python- und JavaScript -Entwickler, je nach Fähigkeiten und Branchenbedürfnissen. 1. Python kann mehr in Datenwissenschaft und maschinellem Lernen bezahlt werden. 2. JavaScript hat eine große Nachfrage in der Entwicklung von Front-End- und Full-Stack-Entwicklung, und sein Gehalt ist auch beträchtlich. 3. Einflussfaktoren umfassen Erfahrung, geografische Standort, Unternehmensgröße und spezifische Fähigkeiten.

Diskussion über die Realisierung von Parallaxe -Scrolling- und Elementanimationseffekten in diesem Artikel wird untersuchen, wie die offizielle Website der Shiseeido -Website (https://www.shiseeido.co.jp/sb/wonderland/) ähnlich ist ...

JavaScript zu lernen ist nicht schwierig, aber es ist schwierig. 1) Verstehen Sie grundlegende Konzepte wie Variablen, Datentypen, Funktionen usw. 2) Beherrschen Sie die asynchrone Programmierung und implementieren Sie sie durch Ereignisschleifen. 3) Verwenden Sie DOM -Operationen und versprechen Sie, asynchrone Anfragen zu bearbeiten. 4) Vermeiden Sie häufige Fehler und verwenden Sie Debugging -Techniken. 5) Die Leistung optimieren und Best Practices befolgen.

Zu den neuesten Trends im JavaScript gehören der Aufstieg von Typenkripten, die Popularität moderner Frameworks und Bibliotheken und die Anwendung der WebAssembly. Zukunftsaussichten umfassen leistungsfähigere Typsysteme, die Entwicklung des serverseitigen JavaScript, die Erweiterung der künstlichen Intelligenz und des maschinellen Lernens sowie das Potenzial von IoT und Edge Computing.

Wie fusioniere ich Array -Elemente mit derselben ID in ein Objekt in JavaScript? Bei der Verarbeitung von Daten begegnen wir häufig die Notwendigkeit, dieselbe ID zu haben ...

Erforschen Sie die Implementierung der Funktion des Bedien- und Drop-Einstellungsfunktion der Panel ähnlich wie VSCODE im Front-End. In der Front-End-Entwicklung wird VSCODE ähnlich wie VSCODE implementiert ...
