class Particle { public float x = 0; public float y = 0; public float vx = 0; public float vy = 0; public float k = .008; public boolean lines = false; private float rnd = .75; private float grav = .02; public void Particle() { } public void move() { float dx = mouseX - x; float dy = mouseY - y; float distSQ = dx*dx + dy*dy; float dist = sqrt(distSQ); float force = 500 / distSQ; vx += force * dx / dist; vy += force * dy / dist; // vx += random(-rnd, rnd); // vy += random(-rnd, rnd); vy += grav; vx *= .9; vy *= .9; vx = min(vx, 20); vx = max(vx, -20); vy = min(vy, 20); vy = max(vy, -20); x += vx; y += vy; if(x > w) { x = w; vx *= -1; } if(x<0) { x = 0; vx *= -1; } if(y > h) { y = h; vy *= -1; } if(y < 0) { y = 0; vy *= -1; } } public void render() { stroke(255, 128); if(lines) { line(x, y, x-vx, y-vy); } else { point(x, y); } } }