XNAは、ゲームにフォーカスがないときにマウスクリックをキャプチャします。


13

Altキーを押しながらゲームウィンドウの外で操作を行っても、ゲームはマウスクリック(左クリックと右クリックの両方)をキャプチャします。

ゲームは、クリックを「消費」しません。これは、クリックがフォーカスを持つアプリケーションにも送信されるためです。

しかし、インターネットブラウザをクリックするたびに銃声を聞くのはかなり面倒です...

また、ゲームがフルスクリーンに設定されている場合でも、問題が発生します。

回答:


15

これに対して私が見つけた最良の解決策は、入力が非アクティブになった場合、入力への応答を停止することです(おそらくゲームも一時停止します)。

あなたは確認することができますGame.IsActiveまたはフックActivatedDeactivatedイベントを。

ちょっとした欠点が1つあります-これはフレームワークのバグだと思います-ゲームは常にアクティブ状態で起動します。ゲームの実行開始時に実際にアクティブになっていなくてもです。(たとえば、ゲームを起動してから実際にゲームを開始するまでの間に別のウィンドウをクリックします。)

これを回避するには、おそらくを使用して、ゲームの開始時にアクティブウィンドウが何であるかを確認しますGetForegroundWindow。または、単に心配することはできません-開発者としてときどき発生しますが、エンドユーザーには実際には影響しないと思います。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.