2

見出しはそれをすべて言います。XNA Gameクラスから派生し、IsMouseVisible=trueを設定します。セカンダリディスプレイがプライマリから拡張されたデュアルスクリーンセットアップがあります。ゲームをフルスクリーンモードに設定しました(GraphicsDeviceManager.IsFullScreen = true)。すべて正常に動作し、フルスクリーンモードが初期化されます。私が抱えている唯一の問題は、マウスがフルスクリーンゲーム内でバインドされたままにならないことです。フルスクリーンゲームの端に達するとすぐに、セカンダリモニターにシームレスに移動します。これは予想される動作ですか?

Mouse.GetState()を実行して、ゲームが実行されている同じスレッドのすべてのフレームでマウス情報を取得します。

GetStateを呼び出す前に、Mouse.WindowHandle = GameWindowHandleを設定しようとしましたが、何も変更されません。

何か案は?または、これは予想される動作であり、マウスをフルスクリーン領域に固定する必要がありますか?

よろしく、リアーン

4

1 に答える 1

3

はい、正確に言えば、マウスを画面上に固定します。これは、ゲームにスプライトカーソルを実装するときに私(および他の多くの人)が使用するアプローチに似ています。システムマウスを非表示にして、他のモニターに表示されないように画面の中央に固定します。

唯一の欠点は、ゲームを最小化する場合などにマウスのクランプを解除する必要があることです。そうしないと、マウスが動かなくなったままになり、非常に煩わしい場合があります。

于 2012-06-06T13:03:33.330 に答える