XNA захватывает щелчки мыши, когда игра не имеет фокуса

13

Если я alt-tab и делаю вещи вне игрового окна, игра по-прежнему захватывает щелчки мыши (как левые, так и правые).

Игра не «потребляет» клики, так как они также отправляются в приложение, которое имеет фокус.

Но довольно неприятно слышать выстрелы каждый раз, когда вы нажимаете в своем интернет-браузере ...

Также проблема возникает, даже если игра настроена на полноэкранный режим.

Асмо
источник

Ответы:

15

Лучшее решение, которое я нашел для этого, - перестать отвечать на ввод (и, возможно, приостановить вашу игру), если он неактивен.

Вы можете проверить Game.IsActiveили подключить Activatedи Deactivatedсобытия.

Есть один незначительный недостаток - я бы просто посчитал это ошибкой во фреймворке - игра всегда запускается в активном состоянии, даже если игра на самом деле не активна, когда запускается. (Например: вы щелкаете в другое окно между запуском игры и ее фактическим запуском.)

Вы можете обойти это, проверив, что такое активное окно, когда ваша игра запускается, возможно, используя GetForegroundWindow. Или вы можете просто не беспокоиться об этом - иногда это происходит как разработчик, но я подозреваю, что это на самом деле не влияет на конечных пользователей.

Эндрю Рассел
источник