// A simple Particle class class Particle { Vector3D loc; Vector3D vel; Vector3D acc; float r; float timer; // One constructor Particle(Vector3D a, Vector3D v, Vector3D l, float r_) { acc = a.copy(); vel = v.copy(); loc = l.copy(); r = r_; timer = 100.0; } // Another constructor (the one we are using here) Particle(Vector3D l) { acc = new Vector3D(0,0.05,0); vel = new Vector3D(random(-1,1),random(-2,0),0); loc = l.copy(); r = 10.0; timer = 100.0; } void run() { update(); render(); } // Method to update location void update() { vel.add(acc); loc.add(vel); timer -= 1.0; } // Method to display void render() { ellipseMode(CENTER); stroke(255,timer); fill(100,timer); ellipse(loc.x,loc.y,r,r); } // Is the particle still useful? boolean dead() { if (timer <= 0.0) { return true; } else { return false; } } }