diff --git a/BouncingWithVectors/BouncingWithVectors.pde b/BouncingWithVectors/BouncingWithVectors.pde index 2683b50..daa9295 100644 --- a/BouncingWithVectors/BouncingWithVectors.pde +++ b/BouncingWithVectors/BouncingWithVectors.pde @@ -1,16 +1,19 @@ //declare variables -float x, y, velX, velY, diam; +//float loc.loc.x, loc.y, velloc.loc.x, vel.y, diam; +float diam = 80; + +//float loc.loc.x,loc.y +PVector loc, vel; // replaces loc.loc.x,loc.y, velloc.loc.x, vel.y, + void setup() { //set size of canvas size(800, 600); //initialize variables - x = width/2; - y = height/2; - diam = 80; - velX = random(-5, 5); - velY = random(-5, 5); + loc = new PVector (width/2, height/2); + vel = PVector.random2D(); + } void draw() { @@ -18,20 +21,20 @@ void draw() { background(0); //draw ball - ellipse(x, y, diam, diam); + ellipse(loc.x, loc.y, diam, diam); - //add velocity to position - x += velX; - y += velY; + //add velocitloc.y to position + loc.add(vel); //bounce ball if it hits walls - if (x + diam/2 >= 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 (loc.x + diam/2 >= width) { + vel.x = -abs(vel.x); //if the ball hits the right wall, assign loc.x velocitloc.y the negative version of itself + } else if (loc.x - diam/2 <= 0) { + vel.x = abs(vel.x); //if the ball hits the left wall, assign loc.x velocitloc.y the positive version of itself } - if (y + diam/2 >= height) { - velY = -abs(velY); - } else if (y - diam/2 <= 0) { - velY = abs(velY); + if (loc.y + diam/2 >= height) { + vel.y = -abs(vel.y); + } else if (loc.y - diam/2 <= 0) { + vel.y = abs(vel.y); } +} \ No newline at end of file diff --git a/Wanderer/Wanderer.pde b/Wanderer/Wanderer.pde index b6ce247..29ffeac 100644 --- a/Wanderer/Wanderer.pde +++ b/Wanderer/Wanderer.pde @@ -1,37 +1,53 @@ +int count = 8; + //declare variables -float x, y, velX, velY, diam; +PVector [] loc = new PVector [count]; +PVector [] vel = new PVector [count]; +PVector [] a = new PVector [count]; +float [] diam = new float [count]; void setup() { //set size of canvas size(800, 600); - - //initialize variables - x = width/2; - y = height/2; - diam = 80; - velX = random(-5, 5); - velY = random(-5, 5); + for (int i = 0; i < count; i++) { + //initialize variables + loc [i] = new PVector (random(width), random(height)); + diam [i] = random(10, 80); + vel[i] = PVector.random2D(); + vel[i].mult(1); + + } } void draw() { - //draw background to cover previous frame - background(0); + for (int i = 0; i < count; i ++) { + println("x" + i + " = " + loc[i].x + ", y" + i + " = " + loc[i].y); + //draw background to cover previous frame + background(204, 240, 229); + stroke(random(237), random(250), random(246)); + strokeWeight(3); - //draw ball - ellipse(x, y, diam, diam); + //draw ball + ellipse(loc[i].x, loc[i].y, diam[i], diam[i]); + a[i] = PVector.random2D(); + a[i].mult(0.1); - //add velocity to position - x += velX; - y += velY; + //add velocity to position + loc[i].add(vel[i]); + vel[i].add(a[i]); + vel[i].limit(10); //limits velocity to - //wrap the ball's position - if (x + diam/2 >= width) { - x = -diam/2; - } else if (x - diam/2 <= 0) { - x = width + diam/2; - } - if (y + diam/2 >= height) { - y = -diam/2; - } else if (y - diam/2 <= 0) { - y = height + diam/2; + + //wrap the ball's position + if (loc[i].x >= width) { + loc[i].x = 0; + } else if (loc[i].x <= 0) { + loc[i].x = width ; + } + if (loc[i].y >= height) { + loc[i].y = 0; + } else if (loc[i].y <= 0) { + loc[i].y = height ; + } } +} \ No newline at end of file