2011年10月 3日 / 2025年3月21日 更新
//最初に1回だけ実行する
void setup() {
size(200, 200);
}
//毎フレーム繰り返し実行する
void draw() {
rect(0, height/2, 10, 10); //画面中央左に一辺が10pxの正方形を描く
}
rectのx座標がじょじょに大きくなれば、正方形は数のように左に移動し、動いているように見える。
float x; //小数型の変数xを宣言
void setup() {
size(200, 200);
x = 0; //xの初期値を0とする
}
void draw() {
x += 1; //毎フレームで正方形のx座標を1ずつ増やす
rect(x, height/2, 10, 10);
}
正方形が動くようになったが、黒い帯が残る。これは、正方形が描き重ねられているからである。毎フレームで画面をクリアした後に正方形を描けば、黒い帯は残らないようになる。
float x;
void setup() {
size(200, 200);
x = 0;
}
void draw() {
background(204); //背景色を設定することで画面をクリアする
x += 1;
rect(x, height/2, 10, 10);
}
正方形が画面右に消える(正方形のx座標が200を超える)と、画面に変化がなくなってしまい退屈である。次に、右に消えたら再び左から現れるようにしよう。
float x;
void setup() {
size(200, 200);
x = 0;
}
void draw() {
background(204);
x += 1;
if (x > width) x = -10; //正方形が画面からはみ出たら、正方形を画面の左外に戻す
rect(x, height/2, 10, 10);
}
if文を実行する際、正方形のy座標をランダムに設定するし、さらに変化を付ける。
float x, y; //変数にyを追加
void setup() {
size(200, 200);
x = 0;
y = height/2; //yの初期値を画面の中央にする
}
void draw() {
background(204);
x += 1;
if (x > width) {
x = -10;
y = random(width - 10); //正方形が画面内に収まる範囲で、yの値をランダムに設定
}
rect(x, y, 10, 10);
}
座標を移動することで、正方形が動いているように見せることができる。このやり方の方が汎用性がある。
float x, y;
float speed;
int w;
void setup() {
size(200, 200);
x = 0.0;
y = height/2.0;
speed = 1.0;
w = 10;
}
void draw() {
background(204);
x += speed;
if (x > width) {
x = -w;
y = random(width - w);
}
translate(x, y); //座標を移動する
rect(0, 0, w, w); //座標を移動するので、正方形は固定の位置に描画する
}
float x, y;
float speed;
void setup() {
size(200, 200);
x = 0.0;
y = height/2.0;
speed = 1.0;
}
void draw() {
background(204);
x += speed;
if (x > width+60) {
x = -60;
y = random(30, width-45);
}
translate(x, y);
//draw Bus
rectMode(CENTER);
rect(0,0,120,60);
ellipse(-35,30,30,30);
ellipse(35,30,30,30);
ellipse(-35,30,20,20);
ellipse(35,30,20,20);
rectMode(CORNER);
rect(45,-20,15,20);
rect(-5,-20,30,20);
rect(-50,-20,30,20);
}