float objX, objY; //オブジェクトのx, y座標 float disX, disY; //mouse座標とオブジェクトの距離 float delay = 10.0; //マウスに遅れる度合い(2.0だと速すぎて見えないので20.0にしておく) float eSize = 10; float speed = 10.0; float minSize = 10; float maxSize = 200; void setup() { size(400, 400); background(255); //背景は白 noStroke(); fill(0); objX = mouseX; //objX, disXを現在のマウスのx座標で初期化 objY = mouseY; //objY, disYを現在のマウスのy座標で初期化 } void draw() { background(255); //軌跡を残す場合は、下の3行をON、backgroundをOFFにする /* fill(255, 10); //透明度のあるrectを描画 rect(0, 0, width, height); fill(0); //オブジェクトは黒 */ disX = mouseX - objX; //マウス座標とオブジェクトの距離をdisX, disYに入れる disY = mouseY - objY; objX = objX + disX/delay; //距離(disX)をdelayで割った値を足す(オブジェクトが移動する) objY = objY + disY/delay; //距離(disY)をdelayで割った値を足す(オブジェクトが移動する) eSize += speed; if (eSize > maxSize || eSize < minSize) speed = -speed;; ellipse(objX, objY, eSize, eSize); } void mousePressed() { noLoop(); // ボタンを押すと停止 } void mouseReleased() { loop(); // ボタンが離されたので再開 }