float maxDistance = 300; float maxSpeed = 10; int numVehicles = 50; Vehicle [] v = new Vehicle[numVehicles]; Source s; void setup() { size( 400,400 ); // sets the size of the environment frameRate(10); // sets the number of draw loops per second noStroke(); // sets the stroke on ellipses to none // this type of loop lets us perform some action to each vehicle in our array for( int i = 0; i 400 || xPos < 0 ) { direction += 90; } yPos = yPos - speed * sin( radians(direction) ); if( yPos > 400 || yPos < 0 ) { direction += 90; } } void updateSpeed( Source s ) { float dx = s.xPos - xPos; float dy = s.yPos - yPos; float distance = sqrt( dx*dx + dy*dy ); //System.out.println( distance ); speed = maxSpeed - ( maxSpeed * distance/maxDistance); } } class Source { float xPos; float yPos; Source( float x, float y ) { xPos = x; yPos = y; fill( 255, 0, 0 ); ellipse( xPos, yPos, 10, 10 ); } }