一方向運動リストに戻る    印刷する

一方向の直線運動…ひとつ(速度変化)

ひとつの円が、水平に加速度運動します。 リスト6-2と同じです。
速度は加速度分ずつ変化し、その速度分位置が変化します。
 s = s + a;  // 速度を変化
 x = x + s;  // 位置を変化
円が右端まで移動してきた時、位置を左壁の外側(半径d/2分左)にするとともに、速度を初期値に設定しなおしています。
 if (x>=width+d/2) {
    x=-d/2;
    s=init; //速度を初期値に戻す
 }
初期値は今、0なので、s=0;と書いても同じですが、 初期速度を入れる変数initを定義し、先頭部分で値を代入しています。このように変数を使うと、見通しのいい、変更しやすいプログラムを書くことができます。

Your browser does not support the canvas tag.

クリックで停止⇔再開
【リスト Straight4】
float init = 0; //移動速度の初期値
float s = init; // 移動速度
float a = 0.1; // 加速
float x; // 位置(x座標)
float d = 10; // 円の直径

void setup() {
   size(150, 150);
   fill(0);
}

void draw() { 
  background(255);   //画面背景を白でクリア
  s = s + a;  // 速度を変化
  x = x + s;  // 位置を変化
  if (x>=width+d/2) {
    x=-d/2;
    s=init; //速度を初期値に戻す
  }
  ellipse(x, height/2, d, d);
}

arigat アットマーク acm.org / copyright © info