XNA cattura i clic del mouse quando il gioco non ha lo stato attivo


13

Se faccio alt-tab e faccio cose al di fuori della finestra del gioco, il gioco cattura ancora i clic del mouse (sia sinistro che destro).

Il gioco non "consuma" i clic, poiché vengono inviati anche all'applicazione che ha lo stato attivo.

Ma è piuttosto fastidioso sentire uno sparo ogni volta che fai clic sul tuo browser Internet ...

Inoltre, il problema si verifica anche se il gioco è impostato su schermo intero.

Risposte:


15

La migliore soluzione che ho trovato a questo è smettere di rispondere all'input (e probabilmente anche mettere in pausa il gioco) se diventa inattivo.

Puoi controllare Game.IsActiveo agganciare gli eventi Activatede Deactivated.

C'è un piccolo inconveniente - lo considererei quasi un bug nel framework - il gioco inizia sempre nello stato Attivo, anche se il gioco non è effettivamente attivo quando inizia a funzionare. (Ad esempio: fai clic su un'altra finestra tra l'avvio del gioco e l'avvio effettivo del gioco.)

Puoi aggirare il problema controllando qual è la finestra attiva all'avvio del gioco, probabilmente usando GetForegroundWindow. Oppure potresti non preoccupartene: a volte succede come sviluppatore, ma sospetto che non influisca davvero sugli utenti finali.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.