float objX, objY; //オブジェクトの座標 float velX, velY; //オブジェクトのスピード int eSize = 40; void setup() { size(400, 400); noStroke(); fill(0); objX = objY = velX = velY = 0.0; //初期化 } void draw() { background(255); //軌跡を残す場合は、下の3行をON、backgroundをOFFにする /* fill(255, 10); //透明度のあるrectを描画 rect(0, 0, width, height); fill(0); //オブジェクトは黒 */ objX += velX; //x、y座標にvelX, velYの値を足す objY += velY; //以下のコードを実行すると、オブジェクトがバウンドする if (objX > width || objX < 0) { //x方向に折り返す velX = -velX; eSize += 10; } if (objY > height || objY < 0) { //y方向に折り返す velY = -velY; eSize -= 10; } /////////////////////////////////////// if (eSize >= 200 || eSize <= 0){ eSize =40; } ellipse(objX, objY, eSize, eSize); //ellipseを描画 } void mouseDragged() { objX = mouseX; //オブジェクトがマウスに追従する objY = mouseY; } void mouseReleased() { //pmouseXは前のフレームのマウスのx座標。この計算でマウスを動かしたスピードがわかる velX = mouseX - pmouseX; velY = mouseY - pmouseY; }