Cet article fait partie d'une série de développement Web de Microsoft. Merci de soutenir les partenaires qui rendent le point de point possible.
Les jeux sur le Web ont parcouru un long chemin avec des technologies HTML5 comme Canvas, WebGL et WebAudio. Il est désormais possible de produire des graphiques et du son à haute fidélité au sein du navigateur. Cependant, pour offrir une véritable expérience de jeu, vous avez besoin de dispositifs d'entrée conçus pour les jeux. L'API GamePad est une norme proposée du W3C et est conçue pour fournir une API cohérente entre les navigateurs.
L'API GamePad permet aux utilisateurs de connecter des appareils comme un contrôleur Xbox à un ordinateur et de les utiliser pour des expériences basées sur le navigateur! Si vous avez un GamePad, essayez de le brancher sur votre ordinateur, puis appuyez sur un bouton. Vous verrez le contrôleur Xbox ci-dessous pour refléter chaque mouvement que vous faites!
Essayez-le de manière interactive ici.
Ce tutoriel est le troisième d'une série sur Flight Arcade - conçu pour démontrer ce qui est possible sur la plate-forme Web et dans le nouveau navigateur Microsoft Edge et le moteur de rendu Edgehtml. Vous pouvez trouver les deux premiers articles sur WebGL et API Web, ainsi que du code interactif et des exemples pour cet article sur flightarcade.com.
[YouTube xyaq9tpmxra]L'API GamePad est intelligemment conçue avec une flexibilité à l'esprit. À un niveau de base, il donne accès aux boutons et aux axes. Les valeurs de bouton varient de [0 .. 1] tandis que les axes vont de [-1 .. 1]. Toutes les valeurs sont normalisées à ces plages afin que les développeurs puissent s'attendre à un comportement cohérent entre les appareils.
L'objet GamePad fournit des informations détaillées sur le fabricant et le modèle du GamePad connecté. Plus utile est une propriété de cartographie qui décrit le type général de GamePad. Actuellement, le seul mappage pris en charge est standard, ce qui correspond à la disposition du contrôleur utilisé par de nombreuses consoles de jeu populaires comme la Xbox.
Le mappage du contrôleur standard a deux bâtons, chacun étant représenté par 2 axes (x et y). Il comprend également un D-Pad, 4 boutons de jeu, des boutons supérieurs et des déclencheurs: tous représentés en boutons de l'API GamePad.
ÉTAT DE RAPPORT DE CONTRÔLEURS XBOX CONTRÔLES COMME SITATIONS 0 (État normal) ou 1 (appuyé). Cependant, vous pouvez imaginer que les futurs contrôleurs pourraient signaler la quantité de force appliquée à chaque bouton appuyer.
La Xbox D-PAD rapporte également des valeurs discrètes (0 ou 1), mais les bâtons fournissent des valeurs continues sur toute la plage d'axe [-1 .. 1]. Cette précision supplémentaire facilite le pilotage de l'avion dans nos missions d'arcade de vol.
Le tableau des boutons et des axes fournis par l'API GamePad est en avant et parfait en tant qu'API de bas niveau. Cependant, lors de l'écriture d'un jeu, il est agréable d'avoir une représentation de niveau supérieur d'une manette de jeu standard comme le contrôleur Xbox One. Nous avons créé une classe d'assistance nommée pxgamepad qui mappe le bouton et les indices d'axe sur les noms les plus familiers comme étiqueté sur le contrôleur Xbox.
Nous allons parcourir quelques pièces intéressantes de la bibliothèque, mais le code source complet (licence MIT) est disponible ici: https://github.com/thinkpixellab/pxgamepad
L'API GamePad standard fournit l'état de bouton comme un tableau de boutons. Encore une fois, cette API est conçue pour la flexibilité permettant aux contrôleurs avec divers dénombrements de bouton. Cependant, lors de l'écriture d'un jeu, il est beaucoup plus facile d'écrire et de lire du code qui utilise les noms de bouton mappés standard.
Par exemple, avec l'API HTML5 GamePad, voici le code pour vérifier si le déclencheur de gauche est actuellement enfoncé:
La classe PXGAMEPAD contient une méthode de mise à jour qui rassemblera l'état pour tous les boutons et axes mappés standard. Il est donc simple de déterminer si le gauche à gauche est aussi simple que d'accès à une propriété booléenne:
Les axes de l'API GamePad standard sont également fournis comme un tableau de valeurs numériques. Par exemple, voici le code pour obtenir les valeurs x et y normalisées pour le bâton gauche:
Le D-Pad est un cas spécial, car il a considéré un ensemble de quatre boutons par l'API HTML5 GamePad (Indices 12, 13, 14 et 15). Cependant, il est courant que les développeurs permettent au DPAD d'être utilisé de la même manière que l'un des bâtons. PXGAMEPAD fournit une infonction de bouton pour le D-PAD, mais synthétise également les informations sur les axes comme si le D-Pad était un bâton:
Une autre limitation de l'API HTML5 GamePad est qui ne fournit pas des événements au niveau des boutones. Il est courant qu'un développeur de jeux souhaite activer un seul événement pour une appuye sur un bouton. Dans Flight Arcade, les boutons d'allumage et de frein sont de bons exemples. PXGAMEPAD Watchs Button State et permet aux appelants de s'inscrire aux notifications sur la libération de bouton.
Voici la liste complète des boutons nommés pris en charge par pxgamepad:
Il existe deux méthodes pour récupérer l'objet GamePad. L'API GamePad ajoute une méthode à l'objet Navigator nommé getGamePads () qui renvoie un tableau de toutes les manèges de jeu connectés. Il existe également de nouveaux événements GamePadConned et GamePadDisconnects qui sont licenciés chaque fois qu'un nouveau jeu de jeu a été connecté ou déconnecté. Par exemple, voici comment le PXGAMEPAD Helper stocke le dernier GamePad connecté:
Et voici l'assistance pour récupérer la première GamePad standard à l'aide de l'API Navigator.getGamePads ():
La classe PXGAMEPAD Helper est conçue pour le scénario simple où un seul utilisateur joue à un jeu avec une manette de jeu cartographiée standard. Les derniers navigateurs, comme Microsoft Edge, prennent entièrement en charge l'API W3C GAMPEPAD. Cependant, les versions plus anciennes de certains autres navigateurs ne supportaient que les pièces de la spécification émergente. Le PXGAMEPAD écoute les événements de GamePadconned et retombe pour interroger la liste de toutes les manèges de jeu si nécessaire.
Bien que PxgamePad se concentre sur le scénario simple et le plus courant, l'API GamePad est entièrement capable de soutenir plusieurs joueurs, chacun avec son propre GamePad. Une amélioration possible pour PXGAMEPAD pourrait être de fournir une classe de style gestionnaire qui suit la connexion de plusieurs GamePads et les mappe à plusieurs joueurs dans un jeu. Un autre pourrait être de permettre aux utilisateurs de remémorer ou de personnaliser les fonctions de bouton sur leurs manèges de jeu.
Nous sommes également enthousiasmés par le potentiel du GamePad pour les scénarios sans jeu. Avec la montée en puissance de WebGL, nous constatons une variété d'utilisations innovantes pour la 3D sur le Web. Cela pourrait signifier explorer la région du mont Everest en 3D avec Glacierworks. Ou voir la collection assyrienne du British Museum grâce aux efforts de Cyark pour préserver numériquement des sites mondiaux importants et des artefacts.
Pendant le développement de Flight Arcade, nous avons fréquemment utilisé Blender et d'autres outils 3D pour traiter les modèles pour babylon.js. Certains développeurs et artistes utilisent un appareil appelé souris 3D pour aider à manipuler et à naviguer dans les modèles 3D. Ces appareils suivent le mouvement d'un seul bouton à travers six axes! Ils facilitent les modèles très faciles et rapides. Au-delà du jeu, ils sont utilisés dans une variété d'applications intéressantes de l'ingénierie à l'imagerie médicale. Tout en ajoutant du support GamePad à Flight Arcade, nous avons été surpris d'apprendre que l'API GamePad a détecté notre spacemouse 3D et a fourni des données de mouvement pour les six axes!
C'est excitant d'imaginer toutes les possibilités que la nouvelle API GamePad offre. C'est le moment idéal pour expérimenter la nouvelle API GamePad et ajouter un contrôle de précision et beaucoup de plaisir à votre prochain jeu ou application!
Microsoft a un tas d'apprentissage gratuit sur de nombreux sujets JavaScript open source et nous sommes en mission pour créer beaucoup plus avec Microsoft Edge. En voici quelques-uns à vérifier:
Et quelques outils gratuits pour commencer: Code Visual Studio, essai Azure et outils de test de navigateur croisé - tous disponibles pour Mac, Linux ou Windows.
Cet article fait partie de la série Web Dev Tech de Microsoft. Nous sommes ravis de partager Microsoft Edge et le nouveau moteur Edgehtml avec vous. Obtenez des machines virtuelles gratuites ou testez à distance sur votre appareil Mac, iOS, Android ou Windows @ moderne.ie.
L'API GamePad est une interface Web qui permet aux développeurs d'accéder et de répondre aux signaux à partir d'un GamePad ou d'un contrôleur. Cette API est conçue pour fonctionner avec tout type de GamePad, ce qui en fait un outil polyvalent pour les développeurs de jeux. Il fournit un moyen d'interagir directement avec le GamePad, sans avoir besoin de passer par un logiciel ou un pilote tiers.
L'API GamePad fonctionne en détectant les entrées du GamePad et en les traduisant en actions dans le jeu. Il le fait en écoutant des événements spécifiques, tels que des pressions de bouton ou des mouvements de joystick, puis en déclenchant l'action correspondante dans le jeu. Cela permet une expérience de jeu plus immersive et interactive.
pour utiliser l'API GamePad dans vos propres jeux, vous devrez inclure c'est dans le code de votre jeu. Cela implique d'appeler les fonctions de l'API et d'écouter les événements qu'il génère. Vous pouvez ensuite utiliser ces événements pour contrôler les aspects de votre jeu, tels que le mouvement des personnages ou la navigation de menu.
L'API GamePad est conçue pour Soyez compatible avec un large éventail de cadres de jeu. Cela comprend des manchettes standard avec des boutons et des joysticks, ainsi que des contrôleurs plus spécialisés comme les volants ou les bâtons de vol. L'API peut également gérer plusieurs GamePads à la fois, permettant des jeux multijoueurs.
Oui, l'API GamePad peut être utilisée en conjonction avec d'autres API pour créer des jeux plus complexes. Par exemple, vous pouvez utiliser l'API GamePad pour contrôler le mouvement des personnages, tout en utilisant une autre API pour gérer la physique du jeu ou les graphiques.
Quels sont les problèmes auxquels les développeurs sont confrontés lors de l'utilisation de l'API GamePad?
L'API GamePad peut-elle être utilisée pour les jeux mobiles?
Comment puis-je tester l'API GamePad?
Il existe de nombreuses ressources disponibles en ligne pour en savoir plus sur l'API GamePad. Cela comprend la documentation officielle de l'API, ainsi que des tutoriels et des guides sur divers sites Web de développement de jeux. Vous pouvez également trouver des exemples de jeux qui utilisent l'API pour le voir en action.
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!