これまでのプログラムは静止画を表示するだけでしたが、次はアニメーションやインタラクションに必要なプログラムの説明をします。
ここで必ず使う機能は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); //円を描く } |