diff --git a/BouncingWithVectors/BouncingWithVectors.pde b/BouncingWithVectors/BouncingWithVectors.pde index 2683b50..29bbdd0 100644 --- a/BouncingWithVectors/BouncingWithVectors.pde +++ b/BouncingWithVectors/BouncingWithVectors.pde @@ -1,37 +1,53 @@ //declare variables -float x, y, velX, velY, diam; +int count= 30; +float [] diam = new float [count]; + +//float x,y +PVector [] loc = new PVector [count]; //replaces x and y + +//float velx, vely +PVector [] vel = new PVector [count]; + void setup() { //set size of canvas size(800, 600); + for (int i=0; i < count; i++) { + //initialize variables + //x=width/2 + //y=height/2 + loc [i] = new PVector(width/2, height/2); - //initialize variables - x = width/2; - y = height/2; - diam = 80; - velX = random(-5, 5); - velY = random(-5, 5); + diam [i] = random(80); + //velX = random(-5, 5); + // velY = random(-5, 5); + vel[i]= PVector.random2D(); + vel[i].mult(5); + } } void draw() { //draw background to cover previous frame background(0); + for (int i =0; i= width) { - velX = -abs(velX); //if the ball hits the right wall, assign x velocity the negative version of itself - } else if (x - diam/2 <= 0) { - velX = abs(velX); //if the ball hits the left wall, assign x velocity the positive version of itself - } - if (y + diam/2 >= height) { - velY = -abs(velY); - } else if (y - diam/2 <= 0) { - velY = abs(velY); + //bounce ball if it hits walls + if (loc[i].x + diam[i]/2 >= width) { + vel[i].x = -abs(vel[i].x); //if the ball hits the right wall, assign x velocity the negative version of itself + } else if (loc[i].x - diam[i]/2 <= 0) { + vel[i].x = abs(vel[i].x); //if the ball hits the left wall, assign x velocity the positive version of itself + } + if (loc[i].y + diam[i]/2 >= height) { + vel[i].y = -abs(vel[i].y); + } else if (loc[i].y - diam[i]/2 <= 0) { + vel[i].y = abs(vel[i].y); + } } +} \ No newline at end of file diff --git a/Wanderer/Wanderer.pde b/Wanderer/Wanderer.pde index b6ce247..88cb3f0 100644 --- a/Wanderer/Wanderer.pde +++ b/Wanderer/Wanderer.pde @@ -1,37 +1,64 @@ //declare variables -float x, y, velX, velY, diam; +//float x, y, velX, velY, +float diam; +PVector loc; +PVector vel; + +PVector acc; + void setup() { //set size of canvas size(800, 600); //initialize variables - x = width/2; - y = height/2; + + // x = width/2; + //y = height/2; + //velX = random(-5, 5); + // velY = random(-5, 5); + //vel = PVector.random2D(); + //vel.mult(0); + loc = new PVector (width/2, height/2); diam = 80; - velX = random(-5, 5); - velY = random(-5, 5); -} + vel = PVector.random2D(); + vel.mult(1); + acc =PVector.random2D(); + acc.mult(.01); -void draw() { //draw background to cover previous frame background(0); //draw ball - ellipse(x, y, diam, diam); + + colorMode(HSB, 360, 100, 100, 100); + noStroke(); +} + + +void draw() { + fill(frameCount%360, 70, 80); + ellipse(loc.x, loc.y, diam, diam); + //add acc to velocity + vel.add(acc); + vel.limit(5); + loc.add(vel); //add velocity to position - x += velX; - y += velY; + + // x += velX; + // y += velY; + //wrap the ball's position - if (x + diam/2 >= width) { - x = -diam/2; - } else if (x - diam/2 <= 0) { - x = width + diam/2; + if (loc.x >= width) { + loc.x = 0; + } else if (loc.x <= 0) { + loc.x = width; } - if (y + diam/2 >= height) { - y = -diam/2; - } else if (y - diam/2 <= 0) { - y = height + diam/2; + if (loc.y >= height) { + loc.y = 0; + } else if (loc.y <= 0) { + loc.y = height; } +} \ No newline at end of file