一方向の直線運動…ひとつ(軌跡なし)
ひとつの円が、水平に一定速度で運動します。 リスト2-2と同じです。右端へ消えたら、左端から現れるようにするために、 リスト2-2と同様にif文を使っています。
if(x>=width+d/2) { //画面の幅+半径分より右に来たら
x=-d/2; //左の壁の外側に置く
}
違いは、円の左端が完全に右壁に消えた後に、左壁の中から再び出てくるように、xの値がwidth+d/2以上になったらxの値を-d/2にしているところです。
クリックで停止⇔再開
【リスト Straight1】
float s = 3; // 移動速度
float x; // 位置(x座標)
float d = 10; // 円の直径
void setup() {
size(150, 150); //描画するための画面
fill(0);
}
void draw() {
background(255); //画面の背景を白でクリア
x = x+s ; // 位置を変化
if(x>=width+d/2) {
x=-d/2; //左の壁の外側に置く
}
ellipse(x, height/2, d, d);
}