float eSize = 40; //オブジェクトのサイズ float speedy = 0.3; //オブジェクトのスピード float speedx = 0.3; //オブジェクトのスピード float y = 0; //オブジェクトのy座標 float x = 0; //オブジェクトのx座標 float accy = 0; //acceleration 加速 float accx = 0; //acceleration 加速 void setup() { size(400, 400); noStroke(); //輪郭を描かない fill(0); //オブジェクトは黒 } void draw() { background(255); /* 軌跡を残す場合は、下の3行をON、backgoundをOFFにする fill(255, 50); //透明度のあるrectを描画 rect(0, 0, width, height); fill(0); //オブジェクトは黒 */ ellipse(x, y, eSize, eSize); //円を描く accy += speedy; //加速yxにspeedyの値を足す accx += speedx; //加速xxにspeedxの値を足す y = accy*accy; //y軸の動きを加減速する様に掛け合わしている x = accx*13; //x軸の動きで弧を描く様にしている eSize = 200-y/2; //もし、yの値が画面の幅以上または0になったら、反射させる if (y>= width || y <= 0) { speedy =- speedy; } //もし、xの値が画面の幅以上または0になったら、反射させる if (x>= width || x <= 0) { speedx =- speedx; } }