XNA capture les clics de souris lorsque le jeu n'a pas de focus


13

Si je fais un alt-tab et que je fais des choses en dehors de la fenêtre de jeu, le jeu capture toujours les clics de souris (clics gauche et droit).

Le jeu ne "consomme" pas les clics, car ils sont également envoyés à l'application qui a le focus.

Mais c'est plutôt ennuyeux d'entendre un coup de feu à chaque fois que vous cliquez dans votre navigateur internet ...

En outre, le problème se produit même si le jeu est défini en plein écran.

Réponses:


15

La meilleure solution que j'ai trouvée à cela est de cesser de répondre aux entrées (et probablement de mettre en pause votre jeu également) s'il devient inactif.

Vous pouvez vérifier Game.IsActiveou accrocher les événements Activatedet Deactivated.

Il y a un inconvénient mineur - je considérerais à peu près cela comme un bug dans le framework - le jeu démarre toujours à l'état Actif, même si le jeu n'est pas réellement actif lorsqu'il commence à fonctionner. (Par exemple: vous cliquez sur une autre fenêtre entre le lancement de votre jeu et le démarrage de votre jeu.)

Vous pouvez contourner ce problème en vérifiant la fenêtre active au démarrage de votre jeu, probablement en utilisant GetForegroundWindow. Ou vous ne pouvez pas vous en soucier - cela arrive parfois en tant que développeur, mais je pense que cela n'affecte pas vraiment les utilisateurs finaux.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.