キーが押された事を判定するには

◆PROCESSING 逆引きリファレンス

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

キーが押された事を判定するには

【解説】
PROCESSINGではキーボードが押された事を検知して、何か処理を行う事が可能です。

キーボードが押された事を検知するには2つの方法があります。

システム定数 keyPressed  を調べる
キーボードが押されている間 trueになるシステム変数です。キーが離されていると false になります。これを draw()関数の中で適度な間隔で検査すれば、キーが押されているかどうかを判別可能です。

keyPressed()関数でキー押下イベントを捕まえる
押された瞬間をタイムリーにつかまえたいなら、keyPressed()関数でキーが押されたタイミングで処理を行うのが良いでしょう。keyPressed() 関数はキーが押されるたびに呼び出されます。

【構文】
システム変数:
boolean  keyPressed ;

イベント関数:
void  keyPressed(){  …  }

【パラメータ】
なし

【戻り値】
void

【注意】
システム変数のkeyPressedは、キーが押されている間しか true になりません。draw()関数のループ間隔が長い(秒単位など)と、押された瞬間を検知する精度が落ちます。

keyPressed()関数は、キーが押さた際に呼び出されますが、キーが押されっぱなしの場合、何度も繰り返し呼びだされてしまいます。keyPressed()関数がどの程度の精度でキーの押下をキャッチできるかは、お使いのOSやPCの性能に依存します。

私のPCの場合、あるキーを押しっぱなしにした場合、1秒間に16~17回の精度でkeyPressed()関数が呼び出されました。

【関連記事】
押された(離された)キーが何か調べるには
キーが離された事を判定するには
第3章:改定版-タイトル画面を作成しよう(その7)


●キーが押されたら処理する例1:

上記サンプルを実行すると、キーが押されれいる間だけ、画面中央に青い丸が描かれます。

上記サンプルでは、描画処理関数(draw)の中で、keyPressedシステム変数をチェックし、キーがされているかどうかを判定しています。

<出力サンプル>
keypressサンプル2

 

●キーが押されたら処理する例2:

上記サンプルを実行すると、キーが押されるたびに、画面中央に青い丸が描かれます。

上記サンプルでは、keyPressed()イベント関数を利用して、キーが押された瞬間を捕まえて処理を行っています。

<出力サンプル>
keypressサンプル2

●応用例:

上記を実行すると、キーボードが押されるたびに画面中央に描かれた宇宙船から、レーダーのような波模様が周囲に描かれます。

上記サンプルは、スケッチフォルダ(ソースプログラム格納場所)のdataフォルダ配下に ship.pngという名前の画像が格納されている事が前提です。

<出力サンプル:宇宙船画像URL illust-AC 様:pando333さん>
keypressサンプル

 


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

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

コメントを残す

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

CAPTCHA


*

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