float accelX=0.2,accelY=0.1;//加速度 float speedX=0,speedY=0;//速度 float posX=10,posY=10;//オブジェクトの位置 int size = 40;//オブジェクトのサイズ void setup() { size(400, 400); background(255); } void draw() { background(255); /* 軌跡を残す場合は、下の3行をON、backgoundをOFFにする fill(255, 50); //透明度のあるrectを描画 rect(0, 0, width, height); fill(0); //オブジェクトは黒 */ //一定の値を超えると加速度が反転 if(speedX > 30.0) { accelX = -accelX; accelY = -accelY; } if(speedX < 0.0) { accelX = -accelX; accelY = -accelY; } //衝突反転 if(posX > width) { posX = 0; }else if(posX < 0){ posX = width; } if(posY > height) { posY = 0; }else if(posY < 0) { posY = width; } //速度に加速を作用させる speedX += accelX; speedY += accelY; //オブジェクトの位置に速度を作用させる posX += speedX; posY += speedY; noStroke();//線なし fill(0);//塗りは黒 ellipse(posX,posY,size,size);//円を描画 }