インタラクティブ・プログラミングに関するトピックと、変数のスコープについて紹介します。


マウスイベント

マウスイベントの発生を検出する関数の例です。

マウスボタンが押されたら

関数 mousePressed() はマウスボタンが押される度に実行される関数です。

int value = 0;

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

void draw()
{
  background(value);
  fill(255-value);
  rect(150, 100, 100, 100);
}

void mousePressed()
{
  if (value == 0) {
    value = 255;
  } else {
    value = 0;
  }
}

マウスボタンが離されたら

関数 mouseReleased() はマウスボタンが離される度に実行される関数です。

int value = 0;

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

void draw()
{
  background(value);
  fill(255-value);
  rect(150, 100, 100, 100);
}

void mouseReleased()
{
  if (value == 0) {
    value = 255;
  } else {
    value = 0;
  }
}

マウスがドラッグされたら

関数 mouseDragged() はマウスドラッグが検出される度に実行される関数です。

void setup() 
{
  size(600, 400);
  background(255);
}

void draw() 
{
}

void mouseDragged() 
{
  stroke(0);
  circle(mouseX, mouseY, 10);
}
void setup()
{
  size(600, 400);
  background(255);
}

void draw()
{
}

void mouseDragged()
{
  stroke(0);
  strokeWeight(4);
  line(pmouseX, pmouseY, mouseX, mouseY);
}

日本語の表示と文字列

PFont font;  // フォント

void setup()
{
  size(400, 300);
  font = createFont("Noto Sans CJK JP", 32);  // フォントを選択
  textFont(font);  // 表示に使うフォントに指定
}

void draw()
{
  background(255);
  fill(0);
  text("こんにちは", 100, 150);
}
PFont font;  // フォント
String s = "こんにちは";

void setup()
{
  size(400, 300);
  font = createFont("Noto Sans CJK JP", 32);  // フォントを選択
  textFont(font);  // 表示に使うフォントに指定
}

void draw()
{
  background(255);
  fill(0);
  text(s, 100, 150);
}
PFont font;  // フォント

void setup()
{
  size(400, 300);
  background(255);
  font = createFont("Noto Sans CJK JP", 32);  // フォントを選択
  textFont(font);  // 表示に使うフォントに指定
}

void draw()
{
  background(255);
  fill(0);
  int h = hour();
  int m = minute();
  int s = second();
  String t = nf(h, 2) + ":" + nf(m, 2) + ":" + nf(s, 2);
  text(t, 100, 150);
}

キーボード

キー入力を検出する関数。

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

void draw()
{
}

void keyPressed()
{
  background(255);
  fill(0);
  textSize(60);
  text(key, width/2, height/2);
}
PFont font;  // フォント
String playerHand = "";

void setup()
{
  size(800, 600);
  background(255);
  font = createFont("Noto Sans CJK JP", 32);  // フォントを選択
  textFont(font);  // 表示に使うフォントに指定
}

void draw()
{
  background(255);
  fill(0);
  text("g:グー    c:チョキ    p:パー", 100, 100);
  text("あなたの手:" + playerHand, 100, 200);
}

void keyPressed()
{
  if (key == 'g') {
    playerHand = "グー";
  } else if (key == 'c') {
    playerHand = "チョキ";
  } else if (key == 'p') {
    playerHand = "パー";
  } else {
    return;  // 無関係なキーは無視
  }
}

変数のスコープ

変数を宣言できる場所