Suivez délibérément chaque pointeur actif
Pour un simple glissement, stockez le pointerId à partir du pointerdown et mettez à jour uniquement lorsque ce pointeur est actif. La capture du pointeur peut conserver les événements de mouvement et de libération ultérieurs acheminés vers l'élément de jeu lorsque le pointeur dépasse ses limites. Gérez pointerup et pointercancel comme des fins distinctes et supprimez l'état dans les deux chemins afin qu'un geste perdu ne puisse pas laisser le jeu bloqué.
Ne partez pas du principe qu’il n’y a qu’un seul pointeur, sauf si la conception limite les entrées. Un deuxième doigt, un stylet ou une souris peut produire un autre pointerId. Si le jeu n’autorise qu’un seul glissement à la fois, ignorez les pointeurs supplémentaires de façon prévisible au lieu de les laisser remplacer le premier.
Choisissez quand le type d'appareil est important
PointerEvent expose pointerType lorsque le toucher, le stylet et la souris doivent être traités différemment. Par exemple, une mécanique de dessin peut exploiter la pression du stylet, tandis qu’un bouton de menu devrait accepter tout pointeur principal. Évitez de séparer le code selon le type d’appareil simplement pour recréer des systèmes d’événements distincts : cela ajoute des cas à tester sans améliorer l’interaction.
Les navigateurs peuvent émettre des événements de souris de compatibilité autour de la saisie du pointeur, évitez donc de gérer une action deux fois sur les deux systèmes. Testez une souris, un contact tactile et un stylet lorsque ces appareils sont dans la portée. MDN documente la capture du pointeur, les identifiants du pointeur et la relation de la famille d'événements avec les événements de souris.
Questions sur événements de pointeur pour les jeux
Les événements de pointeur rendent-ils la souris et le toucher identiques ?
Ils partagent un modèle d'événement, mais les propriétés et les attentes des utilisateurs peuvent toujours différer. Utilisez pointerType ou d’autres détails d’événement uniquement lorsqu’une mécanique a un besoin concret propre à un appareil.
Quand un jeu doit-il utiliser la capture de pointeur ?
Utilisez la capture lorsqu’un glissement actif doit continuer à recevoir les mouvements et l’événement de relâchement même après que le pointeur a quitté la zone de détection de l’élément. Libérez la capture pendant le nettoyage et gérez aussi l’annulation.
Pour aller plus loin
Vous avez repéré une information dépassée ? Signaler une correction