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

Undress AI Tool
Ausziehbilder kostenlos

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

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

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

Java und JavaScript sind unterschiedliche Programmiersprachen, die jeweils für verschiedene Anwendungsszenarien geeignet sind. Java wird für die Entwicklung gro?er Unternehmen und mobiler Anwendungen verwendet, w?hrend JavaScript haupts?chlich für die Entwicklung von Webseiten verwendet wird.

Die folgenden Punkte sollten bei der Verarbeitung von Daten und Zeiten in JavaScript festgestellt werden: 1. Es gibt viele M?glichkeiten, Datumsobjekte zu erstellen. Es wird empfohlen, ISO -Format -Zeichenfolgen zu verwenden, um die Kompatibilit?t sicherzustellen. 2. Die Zeitinformationen erhalten und festlegen k?nnen und setzen Sie Methoden fest, und beachten Sie, dass der Monat mit 0 beginnt. 3. Die manuell formatierende Daten sind Zeichenfolgen erforderlich, und auch Bibliotheken von Drittanbietern k?nnen verwendet werden. 4. Es wird empfohlen, Bibliotheken zu verwenden, die Zeitzonen wie Luxon unterstützen. Das Beherrschen dieser wichtigen Punkte kann h?ufige Fehler effektiv vermeiden.

PlatztagsattheBottomofabogpostorwebpageServeSpracticalPurposesforseo, Usexperience und design.1ithelpswithseobyallowingEnginestoaccessKeyword-relevantTagswithoutClutteringHemainContent.2.

JavaScriptispreferredforwebdevelopment,whileJavaisbetterforlarge-scalebackendsystemsandAndroidapps.1)JavaScriptexcelsincreatinginteractivewebexperienceswithitsdynamicnatureandDOMmanipulation.2)Javaoffersstrongtypingandobject-orientedfeatures,idealfor

Ereigniserfassung und Blase sind zwei Phasen der Ereignisausbreitung in DOM. Die Erfassung erfolgt von der oberen Schicht bis zum Zielelement, und die Blase ist vom Zielelement bis zur oberen Schicht. 1. Die Ereigniserfassung wird implementiert, indem der UseCapture -Parameter von AddEventListener auf true festgelegt wird. 2. Ereignisblase ist das Standardverhalten, Uscapture ist auf false oder weggelassen. 3. Die Ereignisausbreitung kann verwendet werden, um die Ereignisausbreitung zu verhindern. 4. Event Bubbling unterstützt die Ereignisdelegation, um die Effizienz der dynamischen Inhaltsverarbeitung zu verbessern. 5. Capture kann verwendet werden, um Ereignisse im Voraus abzufangen, wie z. B. Protokollierung oder Fehlerverarbeitung. Das Verst?ndnis dieser beiden Phasen hilft dabei, das Timing und die Reaktion von JavaScript auf Benutzeroperationen genau zu steuern.

JavaScripthassevenfundamentaldatatypes:number,string,boolean,undefined,null,object,andsymbol.1)Numbersuseadouble-precisionformat,usefulforwidevaluerangesbutbecautiouswithfloating-pointarithmetic.2)Stringsareimmutable,useefficientconcatenationmethodsf

Wenn JavaScript -Anwendungen langsam geladen werden und eine schlechte Leistung haben, ist das Problem, dass die Nutzlast zu gro? ist. Zu den L?sungen geh?ren: 1. Verwenden Sie die Codespaltung (codessplitting), teilen Sie das gro?e Bündel über React.lazy () in mehrere kleine Dateien auf und laden Sie es nach Bedarf, um den ersten Download zu reduzieren. 2. Entfernen Sie den unbenutzten Code (Treeshaker), verwenden Sie den ES6 -Modulmechanismus, um "toten Code" zu l?schen, um sicherzustellen, dass die eingeführten Bibliotheken diese Funktion unterstützen. 3.. Ressourcendateien komprimieren und verschmelzen, GZIP/Brotli und Terser aktivieren, JS zu komprimieren, Dateien vernünftig zusammenzufassen und statische Ressourcen zu optimieren. V.

Der Hauptunterschied zwischen ES -Modul und CommonJs ist das Lademethode und das Nutzungsszenario. 1.Kommonjs ist synchron geladen und für die node.js server-Seite-Umgebung geeignet. 2. Das Modul ist asynchron geladen und für Netzwerkumgebungen wie Browser geeignet. A. 4.Commonjs wird in alten Versionen von Node.js und Bibliotheken, die auf IT wie Express angewiesen sind, h?ufig verwendet, w?hrend ES-Module für moderne Front-End-Frameworks und Node.jsv14 geeignet sind; 5. Obwohl es gemischt werden kann, kann es leicht zu Problemen führen.
