XNA erfasst Mausklicks, wenn das Spiel keinen Fokus hat


13

Wenn ich die Alt-Taste drücke und etwas außerhalb des Spielfensters mache, erfasst das Spiel immer noch Mausklicks (sowohl Links- als auch Rechtsklicks).

Das Spiel "verbraucht" die Klicks nicht, da sie auch an die Anwendung gesendet werden, die den Fokus hat.

Aber es ist ziemlich ärgerlich, jedes Mal einen Schuss zu hören, wenn Sie in Ihrem Internetbrowser klicken ...

Das Problem tritt auch dann auf, wenn das Spiel auf Vollbild eingestellt ist.

Antworten:


15

Die beste Lösung, die ich gefunden habe, besteht darin, nicht mehr auf Eingaben zu reagieren (und Ihr Spiel wahrscheinlich auch anzuhalten), wenn es inaktiv wird.

Sie können Game.IsActivedie Activatedund Deactivated-Ereignisse überprüfen oder einbinden .

Es gibt einen kleinen Nachteil - ich würde dies nur als einen Fehler im Framework ansehen - das Spiel startet immer im aktiven Zustand, auch wenn das Spiel nicht wirklich aktiv ist, wenn es gestartet wird. (Zum Beispiel: Sie klicken in ein anderes Fenster zwischen dem Start Ihres Spiels und dem tatsächlichen Start Ihres Spiels.)

Sie können dies umgehen, indem Sie überprüfen, welches Fenster zum Zeitpunkt des Spielstarts aktiv ist GetForegroundWindow. Verwenden Sie wahrscheinlich . Oder Sie könnten sich einfach keine Sorgen machen - es kommt gelegentlich als Entwickler vor, aber ich vermute, dass es Endbenutzer nicht wirklich betrifft.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.