Processingでキーボードを使う方法

Processing

みなさん,こんにちは
おかしょです.

Processingではアニメーションだけでなく,ゲームも作ることができます.

ゲームというくらいなのですからキャラクターの操作ができなければなりません.

Processingではキーボードやマウスを使って,自由にプログラムを書いて操作することが可能です.今回はキーボードの使用方法について解説したいと思います.

この記事を読むと以下のようなことがわかる・できるようになります.

  • キーボードを使用するためのプログラムの書き方
  • キーボードでアニメーションを変更する方法

 

この記事を読む前に

processingを初めて触るという方は,以下の記事で大まかなプログラムの書き方を解説しているのでそちらを先に読んでおくことをおすすめします.

 

キーボードを使ったプログラムの書き方

まずは以下のプログラムを実行してみてください.

void setup()
{
}

void draw()
{
  if (keyPressed) 
  {
    println(key);
  }
}

このプログラムを実行すると,小さなウィンドウが出てきます.

ウィンドウが出てきたら,何でも良いので好きなキーを押してみてください.

すると,このようにProcessingのコンソールの左下に押したキーが表示されます.

このように押したキーを表示させることが上のプログラムでできました.それでは上のプログラムでは何をやっていたのか解説します.

注目するのは7から10行目のところのみで,7行目でif文を書いています.
これはキーボードのどこかのキーが押されたら,if文の中のプログラムが実行されることになります.

そして,8行目では押されたキーをコンソールに表示して改行するという処理をしています.

このようなプログラムを実行することによって,押したキーが表示され改行されていました.

ここで,キーを1回しか押していないのに同じキーが何度も表示されたと思います.

これはdraw関数の中身が高速で繰り返されているため,私たちが1回しか押していないと思っている間にdraw関数が何度も繰り返されているからこのように何度も表示されていました.

これを1回と正確に認識されるようにするには,同じキーを認識しないようにするかある一定の時間はキーの認識をしないようにすればできます.

 

押されたキーを認識してプログラムを分岐させる方法

次に押されたキーによってプログラムを分岐させる方法を解説します.

これは非常に簡単で,押されたキーに応じてif文を書くだけです.具体的には以下のようにします.

int i = 0;

void setup()
{
}

void draw()
{
  if (keyPressed) 
  {
    println(i);
    if (key == 'a')
    {
      i += 1;
    }
    if (key == 'b')
    {
      i -= 1;
    }
  }
}

上記のプログラムではaを押すと数字が増加し,bを押すと数字が減少します.

このようにしてプログラムを分岐させることで,キーボードを使って思った通りの動作をさせることが可能となります.

 

keyCodeとは?

これまでのプログラムでは,キーボードで押されたキーは”key”として認識していました.

ただ,この”key”を使った場合”ENTER”や”SHIFT”などのキーは使用できませんでした.

しかし,”keyCode”というものを使用すれば”ENTER”や”SHIFT”だけでなく,十字キーなども使用できるようになります.

ゲームを作りたいのであれば,十字キーは非常に重要な役割を担うため,使わない手はありません.

keyCodeの使い方もいたってシンプルです.

先程の”key”と同じようにif文を書けばその通りの動作をします.

int i = 0;
int l = 0;

void setup()
{
}

void draw()
{
  if (keyPressed) 
  {
    print(i);
    print(" ,");
    println(l);
    if (keyCode == UP)
    {
      i += 1;
    }
    if (keyCode == DOWN)
    {
      i -= 1;
    }
    if (keyCode == RIGHT)
    {
      l += 1;
    }
    if (keyCode == LEFT)
    {
      l -= 1;
    }
  }
}

このプログラムでは,十字キーを使って数字を増減させています.

上下のキーで左に表示される数字を,左右のキーで右に表示される数字を増減させています.

このようにketCodeは認識させたいキーの名前を大文字で入力すれば良いので,わかりやすいです.

例えば,”ENTER”キーの場合はそのまま”ENTER”と入力すれば認識してくれます.

 

キーボードを使ったプログラムの例

このブログでもキーボードを使ったProcessingのプログラムはいくつか公開しています.

こちらでは,3次元の視点の位置や視点を向ける座標などをキーボードで変更できるプログラムを公開しています.

操作方法も解説しているので,ぜひ読んでみてください.

他の記事でもProcessingのプログラムを公開しているのですが,キーボードで操作しているのは上記の記事にあるような視点の変更についてしか扱っていません.

いつかはゲームを作って遊べるようにしてみたいものです…

 

まとめ

この記事ではProcessingで条件分岐させるときにキーボードを使う方法を解説しました.

Processingでキーボードも使えるようになると,表現の幅が非常に広がります.

また,plotなどのコマンドを使いたいけどどの座標を指定しようか迷ったときなどに,キーボードを使って調節ができるようにしておけば,何度も実行を繰り返す必要もなくなるのでプログラミング時間の短縮にもなります.

そして,何よりキーボードを使うと操作している感があって楽しいです.
ぜひやってみて実感してください.

 

続けて読む

以下の記事ではキーボードを使ってモーターの回転数を制御しています.

興味のある方は続けて読んでみてください.

Twitterでは記事の更新情報や活動の進捗などをつぶやいているので気が向いたらフォローしてください.

それでは最後まで読んでいただきありがとうございました.

コメント

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