質問
Javaでゲームを書いていますが、マウス操作が必要です。私はMouseAdapterを使用するつもりでしたが、いくつか調べましたが、クリックまたはアクションを実行せずにマウスポインタの位置を決定する手段がないようです...推奨される方法は何ですかこれをしますか?
いくつかの質問:
-
マウスの「場所」は、モニターの境界、ゲームの境界に関連するマウスの位置を参照しますか、それとも前の位置を基準とした動きとして表されますか?
-
ウィンドウ アプリケーションでマウスポインターを無効にするにはどうすればよいですか? (つまり、マウスの動きがポインターを動かすのではなく、プレーヤーのビューを回転させる一人称シューティングゲーム)これは可能ですか?
解決
をご覧ください。 MouseMotionListener 。これにより、マウスの動きを追跡できます。これは、コンポーネントが接続されているコンポーネント内のマウスの位置を示します。ただし、 SwingUtilities クラスを見ると、ポイントを画面、その他のコンポーネント、またはモニターに変換する便利な方法があります。
カーソルの場合、カーソルに独自のビットマップを設定するオプションがあります。こちら。または、最新のSOの回答については、こちらをご覧ください。したがって、カーソルを非表示にするか、空のビットマップに設定し、マウスの動きとイベントをインターセプトしてビューを制御できます。
他のヒント
マウスイベントのチュートリアルは次の場所にあります。 http://java.sun.com/docs/books/ tutorial / uiswing / events / mouselistener.html
ここを見ると: http://java.sun.com/ javase / 7 / docs / api / java / awt / event / MouseEvent.html
絶対位置、画面上、またはコンポーネントを基準とした座標を取得できます。
方向を変更する動きがある場合は、マウスリスナーを削除する必要があります。または、イベントハンドラーが何もせずに終了するだけのロジックを持つことができます。これはより良いと思います。それ以外の場合は、リスナーを追加および削除するタイミングを追跡する必要があります。