Processing mousePressedとkeyPressed

この記事は約2分で読めます。

## はじめに

以前にマウスの使い方と称して mouseX,mouseY について述べたことがあるが、マウスといえばクリックである。
対話性のある(インタラクティブな)プログラムをつくろうとした場合、マウスがクリックされたりキーボードが押されたりといった判定が欲しくなることがあるだろう。
今回は、Processing におけるマウスのクリック、キーボード入力の判定に焦点をあててみたい。

## mousePressed について

後ろの単語の頭文字が大文字になっていることから予想がつく人もいると思うが、mousePressed とは Processing に用意されているメソッドと呼ばれるもので、マウスのクリックを判定することができる。
ここでは、メソッドが何かよりも mousePressed の具体的な使い方について解説しよう。
使用法は setup,draw と同じで、
void mousePressed(){
「マウスが押された時の処理」
}
である。
それでは、さっそく mousePressed を使ったプログラムを書いてみよう。

int r;
void setup() {
  size(400, 400);
  r = 1;
}
void draw() {
  background(255);
  fill(255, 0, 0);
  ellipse(200, 200, r*5, r*5);
}
void mousePressed() {
  r = r+1;
}
例によって、上記をコピペまたは記述して実行してみて欲しい。ウィンドウの真ん中に小さい円が表示されていれば成功である。では、ウィンドウのなかでクリックをしてみよう。円が大きくなるはずである。
楽しい。
  これを応用することで、プログラミングの幅が大きく広がることは間違いないだろう。

## keyPressed について

いうまでもなく、こちらも Proseccing に用意されているメソッドのひとつで、キーボード入力の判定をすることができる。
使用法もまた、
void keyPressed() {
  「キーボード入力がされた時の処理」
}
と扱いやすい。
しかし、これだけでは全てのキーについて判定がされてしまう。
RPG ゲームを作りたかったらカーソルキーで進行方向を分ける、というようにキーを判別したいことがあるだろう。その方法についても解説したい。
アルファベットや数字の場合、
void keyPressed() {
  if(key ==  ‘「判定するキー」’ ){
「そのキーが押された時の処理」  
  }
}
である。
この時、判定するキーを ’ ’ で囲むことを忘れないように注意しよう。

ENTER キーやカーソルキーを判定したい場合、
void keyPressed() {
  if(keyCode ==  「判定するキー」 ){
「そのキーが押された時の処理」  
  }
}
である。
この時、判定するキーは、全て大文字で入力する( ‘ ’で囲む必要はない )。具体例をしめそう。
ENTER
SPACE
UP
DOWN
RIGHT
LEFT
このあたりがよく使われるのではないだろうか。ちなみに、下4つはカーソルキーである。
それでは、さっそく keyPressed をつかったプログラムを書いてみよう。

int x;
int y;
void setup() {
  size(400

コメント

タイトルとURLをコピーしました