◆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システム変数をチェックし、キーがされているかどうかを判定しています。
●キーが押されたら処理する例2:
上記サンプルを実行すると、キーが押されるたびに、画面中央に青い丸が描かれます。
上記サンプルでは、keyPressed()イベント関数を利用して、キーが押された瞬間を捕まえて処理を行っています。
●応用例:
上記を実行すると、キーボードが押されるたびに画面中央に描かれた宇宙船から、レーダーのような波模様が周囲に描かれます。
上記サンプルは、スケッチフォルダ(ソースプログラム格納場所)のdataフォルダ配下に ship.pngという名前の画像が格納されている事が前提です。
<出力サンプル:宇宙船画像URL illust-AC 様:pando333さん>
本ページで利用しているアイコン画像は、下記サイト様より拝借しております。各画像の著作権は、それぞれのサイト様および作者にあります。