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.

asmo
quelle

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.

Andrew Russell
quelle