クラスとオブジェクト
FreeFallBall fb = new FreeFallBall(); void setup() { size(400, 600); fb.init(200,100); } void draw() { background(255); fb.paint(); } class FreeFallBall { int ballNum = 200; float g = 0.25; //重力加速度 float[] x = new float[ballNum]; float[] y = new float[ballNum]; float[] sx = new float[ballNum]; float[] sy = new float[ballNum]; float[] vx = new float[ballNum]; float[] vy = new float[ballNum]; //初期化のためのメソッド,setup()内でfb1.init(200,100); のようにして呼び出す void init(float x2, float y2) { for (int i = 0; i < ballNum; i++) { x[i] = x2; y[i] = y2; sx[i] = x2; sy[i] = y2; vx[i] = random(3)-1.5; vy[i] = -random(5)-2.5; } } void paint() { //このボールを描画するためのメソッド for (int i = 0; i < ballNum; i++) { ellipse(x[i], y[i], 5, 5); x[i] += vx[i]; y[i] += vy[i]; vy[i]+=g; //vy(速度)を少しずつ早くすることで放物線の動きになる if (y[i] > height) { //画面外に出たら vy[i] = -random(5)-1; //y方向の速度を初期化 x[i] = sx[i]; y[i] = sy[i]; //座標を基点座標にリセット } } } }
Copy