押された(離された)キーが何か調べるには

◆PROCESSING 逆引きリファレンス

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

押された(離された)キーが何か調べるには

システム変数 key
常に直前に使われた(押された、あるいは離された)キーボードのキーを保持している変数です。この変数を読み取ることで、どのキーが押された(または離された)かを知る事が可能です。

システム変数 keyCode
基本的には key 変数と同じです。
key変数と異なるのは、押された(あるいは離された)キーがアスキー(ASC)仕様範囲内であればkeyに、範囲外であれば keyCodeに値が保存される点です。

代表例:
アスキー仕様に含まれるキー (BACKSPACE,、TAB、 ENTER、 RETURN、 ESC、 DELETE)
アスキー仕様に含まれないキー(UP、DOWN、LEFT、RIGHTの各矢印キー、SHIFT、ALT、CONTROLなど)

【注意】
keyの内容が システム定数の CODED かどうか調べることで、押されたキーがアスキー仕様に含まれるキーかどうか知る事が可能です。

ENTERキーとRETURNキーは、共に復帰改行(リターン)という同じ意味をもつキーです。しかし機種やOSによって、どちらを用いるのかが異なります。
例えば Unix系列のOSでは多くの場合 ENTERを用います。OSX(マック)ではRETURNです。

あなたが作成したPROCESSINGのプログラムが、どのOSで使われるか限定できない場合は、復帰改行キーの判定に両方を対応しておくのがベターでしょう。

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


●keyで判定する例:

keyの内容が CODED かどうか調べることで、押されたキーがアスキー仕様に含まれるキーかどうか調べています。

アスキー仕様の場合(!= CODED)、押されたキー情報は key に格納されているので、その内容を表示しています。

<出力サンプル>
keyサンプル

 

●keyCodeで判定する例:

keyの内容が CODED かどうか調べることで、押されたキーがアスキー仕様に含まれるキーかどうか調べています。

アスキー仕様以外の場合(== CODED)、押されたキー情報は keyCode に格納されているので、その内容を表示しています。

一部のキー(SHIFT)などはPROCESSINGにより定数化されていますが、定数に存在しないキーもあります。本例では直接数値で判定しています。みなさんが利用する場合は、数値を自分で定数化した方が良いでしょう。

<出力サンプル>
keyCodeサンプル

 

●ENTERとRETURNの両方に対応する例:

ENTERもRETURNもPROCESSINGが定数として提供しています。case文で、そのどちらであっても良いように判定しています。

<出力サンプル>
keyENTERサンプル

 

●応用:複数キー同時判定例

PROCESSINGでは簡単にキーボードの状態を判定できるのがメリットですが、それはあくまで単一のキー押下の場合です。複数のキー押下を同時に判定するためには、少し工夫が必要となります。

ゲームなどで、↑と→が同時に押されていたら、自機を右斜め前方に移動したいなどといった場面で必要となります。

上記を実行すると、各矢印キーの押下を同時判定し◯が斜めに移動します。

上記のプログラムは Yahoo知恵袋 様:quickbrwnfoxjumpsoverthelazydogさん のプログラムを、ビット操作を行わずにArrayで判定するように改編したものです。

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


●おまけ
代表的なキーと値を一覧表にしました。赤字はPROCESSINGで定義されている予約定数です。

アルファベット数字ファンクションキー制御キー
A/a
65/97
O/o
79/111
0
48
F1(ヘルプ)
112
BACKSPACE
8
LEFT(←)
37
B/b
66/98
P/p
80/112
1
49
F2
113
TAB
9
UP(↑)
38
C/c
67/99
Q/q
81/113
2
50
F3(検索)
114
ENTER
10
RIGHT(→)
39
D/d
68/100
R/r
82/114
3
51
F4(アドレスバー)
115
SHIFT
16
DOWN(↓)
40
E/e
69/101
S/s
83/115
4
52
F5(更新)
116
CONTROL
17
Insert
155
F/f
70/102
T/t
84/116
5
53
F6(フォーカス)
117
ALT
18
DELETE
127
G/g
71/103
U/u
85/117
6
54
F7
118
Pause
19
NumLock
144
H/h
72/104
V/v
86/118
7
55
F8
119
変換
28
ScrollLock
145
I/i
73/105
W/w
87/119
8
56
F9
120
無変換
29
43
J/j
74/106
X/x
88/120
9
57
F10(Alt)
121
スペース
32
-
45
K/k
75/107
Y/y
89/121
F11(全画面)
122
PageUp
33
*
42
L/l
76/108
Z/z
90/122
F12
123
PageDown
34
/
47
M/m
77/109
End
35
N/n
78/110
Home
36

(参考URL:キーコード一覧 様)

 


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

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

コメントを残す

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

CAPTCHA


*

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