Followers[] followers = new Followers[33]; void setup() { size( 920,720 ); smooth(); frameRate( 120 ); for ( int i = 0; i < followers.length; i++ ) { followers[i] = new Followers(); } } void draw() { noStroke(); fill( 255,10 ); rect( 0,0,width,height ); for ( int i = 0; i < followers.length; i++ ) { followers[i].update(); followers[i].display(); followers[i].BorderCheck(); } } class Followers { PVector location; PVector velocity; PVector acceleration; PVector mouse; float howBig; float howFast; float howFar; float damping; Followers() { location = new PVector( random(width),random(height) ); velocity = new PVector( 0,0 ); howFast = 10; howFar = .4; } void update() { mouse = new PVector( mouseX,mouseY ); acceleration = PVector.sub( mouse,location ); acceleration.normalize(); acceleration.mult( howFar ); velocity.add(acceleration); velocity.limit( howFast ); location.add( velocity ); } void display() { strokeWeight( random(10) ); stroke( #FF0000,125 ); fill( 0,175 ); //ellipse( location.x,location.y,howBig,howBig ); triangle( location.x,location.y,location.x-random(30),location.y+random(30),location.x+random(30),location.y+random(30) ); } void BorderCheck() { //noCursor(); if ( location.x > width ) location.x = 0; if ( location.x < 0 ) location.y = width; if ( location.y > height ) location.y = 0; if ( location.y < 0 ) location.y = height; } }