2012年8月19日日曜日

Processing(Proce55ing)におけるキーボードの同時押し認識

Processingで標準に用意されているシステム変数"key"や"keyCode"などは,単一フレーム内の一つのキーを認識するのにはシンプルで良い機能だが,同時押しの認識はされなく,2つ3つ同時押ししてもどれか一つしかシステム変数に代入されない.

ところで,Processingはこのページによれば,
ただし Processingの実体である BAppletは、Appletクラスをextendsしたものらしいので、Appletクラスで使える機能は使えるようです。
とのことなので,キーの同時押しが認識されているかどうかを簡単に確認できる関数を用意した.

public void processKeyEvent(KeyEvent e){
System.out.println(" KeyCode: "+e.getKeyCode());
System.out.println(" KeyChar: "+e.getKeyChar());
}

このコードをスケッチブックに貼り付け実行するだけでProcessing内のコンソールにkeyCodeとkeyCharが表示される.あとは自分で工夫して任意のコード取り出すこと(keyCodeが0は明らかいらないような気がするので切り落とす)