setup()とdraw()

これまでのプログラムは静止画を表示するだけでしたが、次はアニメーションやインタラクションに必要なプログラムの説明をします。

ここで必ず使う機能はsetup()とdraw()です。
このモードはProcessingプログラミングの中で一番よく使われるものでしょう。
setup()で初期化し、draw()を繰り返し実行することでアニメーションなどが出来ます。
setup()は一度だけしか使えません。以下にその例を挙げます。

繰り返し

点が左から右に動き、右端まで行くとまた左端から始まるアニメーションです。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int eSize = 5;  //オブジェクトのサイズ
int speed = 5;  //オブジェクトのスピード
int x = 0;  //オブジェクトのx座標
 
void setup() {
  size(400, 400);
  noStroke();      //輪郭を描かない
  frameRate(30);  //再生速度を1秒30フレームに設定(初期値は1秒60フレーム)
  smooth();        //オブジェクトにアンチエイリアスをかける
  fill(0);      //オブジェクトを黒で塗りつぶす
}
 
void draw() {
  background(255);  //画面の色を更新
  ellipse(x, height/2, eSize, eSize);    //円を描く
  x = x + speed;    //x座標にspeedの値を足す
  if (x >=width) {    //もし、xの値がよ画面の幅を超えたら、xを0に戻す
    x = 0;
  } 
}

折り返し

点が左から右に動き、右端まで行くと左方向に戻っていき、その動作を繰り返すアニメーションです。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
int eSize = 5;  //オブジェクトのサイズ
int speed = 5;  //オブジェクトのスピード
int x = 0;  //オブジェクトのx座標
 
//初期化
void setup() {
  size(400, 400);
  noStroke();      //輪郭を描かない
  frameRate(30);  //再生速度を1秒30フレームに設定(初期値は1秒60フレーム)
  smooth();        //オブジェクトにアンチエイリアスをかける
}
 
//プログラムが終了するまで、draw()の中は繰り返される
void draw() {
  background(255);  //背景は白
  x = x + speed;    //xの値にspeedを足す
 
  //もし、xの値が画面の右端より大きくなるか、左端より小さくなった場合、
  if(x > width || x <0) {
    speed = -speed;    //speedの正負を入れ替える
  }
 
  fill(0);  //黒で描く
  ellipse(x, height/2, eSize, eSize);    //円を描く
}