XNA menangkap klik mouse saat game tidak memiliki fokus

13

Jika saya alt-tab dan melakukan hal-hal di luar jendela game, permainan masih menangkap klik mouse (klik kiri dan kanan).

Permainan tidak "mengonsumsi" klik, karena mereka juga dikirim ke aplikasi yang memiliki fokus.

Tapi agak menjengkelkan mendengar suara tembakan setiap kali Anda mengklik di peramban internet ...

Juga, masalah terjadi bahkan jika game diatur ke layar penuh.

Asmo
sumber

Jawaban:

15

Solusi terbaik yang saya temukan untuk ini adalah berhenti merespons input (dan mungkin juga menghentikan game Anda) jika tidak aktif.

Anda dapat memeriksa Game.IsActiveatau mengaitkan Activateddan Deactivatedacara.

Ada satu kelemahan kecil - saya hanya akan menganggap ini bug dalam kerangka - permainan selalu dimulai dalam keadaan aktif, bahkan jika permainan tidak benar-benar aktif ketika mulai berjalan. (Misalnya: Anda mengklik ke jendela lain antara meluncurkan game dan game Anda benar-benar dimulai.)

Anda bisa mengatasinya dengan memeriksa apa jendela aktif saat game Anda mulai, mungkin menggunakan GetForegroundWindow. Atau Anda bisa saja tidak mengkhawatirkannya - ini kadang-kadang terjadi sebagai pengembang, tapi saya kira itu tidak benar-benar mempengaruhi pengguna akhir.

Andrew Russell
sumber