Home > 1b > | ノート > 1b-05 反応させる(キーボードからの入力に)

1b-05 反応させる(キーボードからの入力に)

キーボードからの入力に反応して、画面が変化するプログラムを学ぶ。

keyPressed キーが押されている(== true)、押されていない(== false)

キーが押されているとき、円が左から右にすすむ

1b_05_1

int x = 0;

void setup() {
  size(400, 400);
}

void draw() {
  background(204);
  if (keyPressed == true) {
    x++;
    //println(key);
  }
  ellipse(x, height/2, 60, 60);
}

key 押されたキーの文字や記号を納める変数

キーのa(小文字のエー)が押されているとき、円が左から右にすすむ

int x = 0;

void setup() {
  size(400, 400);
}

void draw() {
  background(204);
  if ((keyPressed == true) && (key == 'a')) {
    x++;
  }
  ellipse(x, height/2, 60, 60);
}

※大文字小文字を問わないようにするためには、次のように「aまたはAが押されているとき」で条件を設定する

int x = 0;

void setup() {
  size(400, 400);
}

void draw() {
  background(204);
  if ((keyPressed == true) && ((key == 'a') ||  (key == 'A'))) {
    x++;
  }
  ellipse(x, height/2, 60, 60);
}

void keyPressed() {...} キーが押されたときに1回だけ {...} の中を実行する

※キーを押しっぱなしにして一定時間経つと、キーの連続入力状態になり、そのスピードに合わせ連続して実行される。

キーが押されると、円が1ピクセルだけ左から右にすすむ

int x = 0;

void setup() {
  size(400, 400);
}

void draw() {
}

void keyPressed() {
  background(204);
  x++;
  ellipse(x, height/2, 60, 60);
  //println(key);
}

void keyReleased() {...} キーが離されたときに1回だけ {...} の中を実行する

キーが離されると、円が止まる

int x = 0;
int speed = 1;

void setup() {
  size(400, 400);
}

void draw() {
  background(204);
  x = x + speed;
  ellipse(x, height/2, 60, 60);
}

void keyReleased() {
  speed = 0;
}

押されたキーの文字を表示する

1b_05_2

※事前に「Tools」の「Create Font...」でフォントデータを生成しておく。(教科書86ページまたは1a-07 画像や文字を使うを参照)

int x = 0, y = 50;
PFont font;

void setup() {
  size(400, 400);
  background(0);
  fill(255, 128);
  font = loadFont("Serif-48.vlw");
  textFont(font, 48);
  //textAlign(CENTER);
}

void draw() {
}

void keyPressed() {
  text(key, x, y);
}

void keyReleased() {
  x += 10;
  if (x > width) {
    x = 0;
    y += 50;
  }
}

練習

  1. 文字の出現位置をランダムにしてみる
  2. 文字の色をランダムにしてみる
  3. スペースキーを押すと、画面がリセットされる

Home > 1b > | ノート > 1b-05 反応させる(キーボードからの入力に)

Search
Feeds
Textbook
  • Built with Processing [改訂版]
Recommends
  • Processing – A Programming Handbook for Visual Designers and Artists
  • Learning Processing: A Beginner's Guide to Programming Images, Animation, and Interaction (Morgan Kaufmann Series in Computer Graphics)
  • Arduinoをはじめよう
  • ビジュアライジング・データ ―Processingによる情報視覚化手法
  • +GAINER―PHYSICAL COMPUTING WITH GAINER

Return to page top