XNA, oyunun odağı olmadığında fare tıklamalarını yakalar


13

Alt-sekme yapar ve oyun penceresinin dışında bir şeyler yaparsam, oyun yine de fare tıklamalarını (hem sol hem de sağ tıklama) yakalar.

Oyun da tıklamaları "tüketmez", çünkü aynı zamanda odağı olan uygulamaya gönderilirler.

Ancak internet tarayıcınızı her tıkladığınızda bir silah sesi duymak oldukça sinir bozucu ...

Ayrıca, oyun tam ekrana ayarlanmış olsa bile sorun oluşur.

Yanıtlar:


15

Bunun için bulduğum en iyi çözüm, etkin olmadığında girişe yanıt vermemeyi (ve muhtemelen oyununuzu da duraklatmayı) sağlamaktır.

Ve olaylarını kontrol edebilir Game.IsActiveveya bağlayabilirsiniz .ActivatedDeactivated

Küçük bir dezavantajı var - bunu sadece çerçeve içinde bir hata olarak düşünürdüm - oyun her zaman Aktif durumda başlar, oyun çalışmaya başladığında aslında aktif olmasa bile. (Örneğin: oyununuzu başlatmak ve oyununuzu başlatmak arasında başka bir pencereye tıklarsınız.)

Oyununuz başladığında aktif pencerenin ne olduğunu kontrol ederek, muhtemelen kullanarak bu sorunu çözebilirsiniz GetForegroundWindow. Ya da bunun için endişelenemezsiniz - bazen bir geliştirici olarak gerçekleşir, ancak son kullanıcıları gerçekten etkilemediğinden şüpheleniyorum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.