これまでのプログラムは静止画を表示するだけでしたが、次はアニメーションやインタラクションに必要なプログラムの説明をします。
ここで必ず使う機能はsetup()とdraw()です。
このモードはProcessingプログラミングの中で一番よく使われるものでしょう。
setup()で初期化し、draw()を繰り返し実行することでアニメーションなどが出来ます。
setup()は一度だけしか使えません。以下にその例を挙げます。
繰り返し
点が左から右に動き、右端まで行くとまた左端から始まるアニメーションです。
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;
}
}
折り返し
点が左から右に動き、右端まで行くと左方向に戻っていき、その動作を繰り返すアニメーションです。
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); //円を描く
}
