マウスのどのボタンが操作されたか調べるには

◆PROCESSING 逆引きリファレンス

 カテゴリー:キーボード・マウス処理

マウスのどのボタンが操作されたか調べるには

システム変数 mouseButton を調べる
直前に操作されたマウスボタンの情報を格納しているシステム変数です。PROCESSINGで扱えるマウスボタンの種類は LEFT, CENTER,  RIGHTの何れかです。

イベント関数に渡される MouseEventオブジェクトを利用する
mousePressed、mouseClicked、mouseReleasedの各イベント関数には、MouseEvent型のインスタンス変数を受け取るものがあります。

このインスタンス変数のメソッドやプロパティを参照する事で、操作されたマウスボタンの種類を知ることが可能です。

【構文】
システム変数:
int   mouseButton;

イベント関数:
void  mousePressed(event){  …  }
void  mouseClicked(event){  …  }
void  mouseReleased(event){  …  }

【パラメータ】
MouseEvent : event : マウスイベントオブジェクト

MouseEventオブジェクトについては「マウスボタンが押された事を判定するには」記事で解説していますので、そちらも参照してください。

【戻り値】
イベント関数の戻り値は void

【注意】
mouseButtonシステム変数には、直前に操作されたボタンの情報が格納されます。

例えば左ボタンを押した直後に右ボタンを押した場合、 mouseButton には「左ボタン(LEFT)」という情報が格納され、その後直ちに「右ボタン(RIGHT)」という情報が格納されます。

実はPROCESSINGには、発生したマウスイベントそのものを記憶するmouseEventというシステム変数も用意されています。

これを使えば、mouseButtonなどのイベント関数に渡されるMouseEvent型のインスタンスと同じ処理が行えます。

【関連記事】

●ボタンを判定する例1:

実行結果ウィンドウでマウスボタンを押下すると、押されたボタン内容をデバックウィンドウに表示します。

<出力サンプル>
mousePressed変数例

 

●ボタンを判定する例2:

mouseClicked()イベント関数に渡される MouseEvent型のインスタンス変数を利用して、クリックされたボタンの種類をデバックウィンドウに表示しています。

<出力サンプル>
mousePressed変数例

 

●左右ボタンの同時押しを検知する例:

注意に記載したように、mouseButtonシステム変数には、直前に操作されたボタンの情報のみが格納されています。そのままでは、マウスボタンを複数同時に押したり離した事が検知できません。

上記例ではイベント関数を利用する事で、ボタンが操作された際に、どのボタンが操作されたのかをArrayList変数に記録しています。ArrayList変数を、押されていれば true、離されたら false にする事で、両方のボタンの状態を記録して、ボタン状態を判定しています。

<出力サンプル>
mousePressed同時判定例

 


PROCESSING逆引きリファレンス一覧 へ戻る

本ページで利用しているアイコン画像は、下記サイト様より拝借しております。各画像の著作権は、それぞれのサイト様および作者にあります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)