3

プログラマーの皆様、明けましておめでとうございます。

2 つのマウスを備えたコンピューターで実行される 2 プレーヤーの Java Swing ゲームを想像してみてください。プレイヤーごとに 1 つのマウスを割り当て、各マウスを順番にロックアウトしてから、アクティブなマウスを交換することはできますか? 両方のマウスが同じ MouseListener メソッドを共有します。

そのような可能性についてのインターネットの参照は見当たりませんが、この状況は以前に訪れたことがあると感じています。

ジョージFK

4

3 に答える 3

3

問題は、基盤となる OS レイヤーでのデバイス処理です。ほとんどのシステムは、入力を 1 つの仮想マウスにマージします。これが、トラックパッドと USB マウスを同時にアクティブにできる理由です。もちろん、両方を使用しようとすると、ポインターの動きに競合が発生します。

これを実装する方法は、特定のマウス デバイスと直接通信するネイティブ メソッドを使用することになると思います。したがって、これらのオブジェクトを 2 つ使用して、各マウスをポーリングし、画面上のゲーム コントロールを制御します。

于 2013-01-02T20:03:24.863 に答える
3

可能ですが、もちろんピュア Java ではそうではないため、何らかのJNIを使用する必要があります。

ManyMouseをチェックしてください。

ManyMouse は、複数のマウス入力の処理を小さなクロスプラットフォーム API に抽象化するライブラリです。これは、独自の入力が必要なゲームや従来とは異なるアプリケーションで使用することを目的としています。ほとんどのプラットフォームでは、少なくともすべての USB マウスを使用できるようにすることができますが、多くの場合、シリアル マウスと組み込みのラップトップ トラックパッドも使用できるようになります。

ソースコードと、何らかの理由で実際のWebサイトで利用できないすべてのものを次に示します。

于 2013-01-02T20:07:05.533 に答える
0

興味深い質問です。MSDN マウス入力マニュアル全体には、信号がどのマウスから来るかを制御することについては言及されていません。

確かに、そのための BIOS コマンドがありますが、コードは特定のコンピューターでしか機能しません。

したがって、普遍的なソリューションが必要な場合は、独自の「ダブル マウス ドライバー」を作成する必要があります。もしくはネットで探してみてください。

于 2013-01-02T20:16:14.490 に答える