From 324da8675a67706f64d09d8cdd867b8b8f5a0db3 Mon Sep 17 00:00:00 2001 From: jwong2 Date: Mon, 9 Nov 2015 13:08:48 -0500 Subject: [PATCH 1/6] Added gravity --- GravityBallCode/GravityBallCode.pde | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/GravityBallCode/GravityBallCode.pde b/GravityBallCode/GravityBallCode.pde index df2493b..6ae3173 100644 --- a/GravityBallCode/GravityBallCode.pde +++ b/GravityBallCode/GravityBallCode.pde @@ -1,5 +1,5 @@ //declare variables -float x, y, velX, velY, diam; +float x, y, velX, velY, diam, gravity; void setup() { //set size of canvas @@ -11,6 +11,7 @@ void setup() { diam = 80; velX = random(-5, 5); velY = random(-5, 5); + gravity = 1; } void draw() { @@ -20,6 +21,9 @@ void draw() { //draw ball ellipse(x, y, diam, diam); + //add velocity + velY += gravity; + //add velocity to position x += velX; y += velY; From a6f1722b23393336e0affc21d79b06c6bc46c7a9 Mon Sep 17 00:00:00 2001 From: jwong2 Date: Mon, 9 Nov 2015 13:16:54 -0500 Subject: [PATCH 2/6] Added 30 balls --- GravityBallCode/GravityBallCode.pde | 62 +++++++++++++++++------------ 1 file changed, 36 insertions(+), 26 deletions(-) diff --git a/GravityBallCode/GravityBallCode.pde b/GravityBallCode/GravityBallCode.pde index 6ae3173..c461632 100644 --- a/GravityBallCode/GravityBallCode.pde +++ b/GravityBallCode/GravityBallCode.pde @@ -1,16 +1,24 @@ //declare variables -float x, y, velX, velY, diam, gravity; +float gravity; +int count = 30; +float[] x = new float[count]; +float[] y = new float[count]; +float[] velX = new float[count]; +float[] velY = new float[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 + x[i] = width/2; + y[i] = height/2; + diam[i] = 80; + velX[i] = random(-5, 5); + velY[i] = random(-5, 5); + } gravity = 1; } @@ -19,24 +27,26 @@ void draw() { background(0); //draw ball - ellipse(x, y, diam, diam); - - //add velocity - velY += gravity; + for(int i = 0; i < count; i++) { + ellipse(x[i], y[i], diam[i], diam[i]); - //add velocity to position - x += velX; - y += velY; - - //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 (y + diam/2 >= height) { - velY = -abs(velY); - } else if (y - diam/2 <= 0) { - velY = abs(velY); + //add velocity + velY[i] += gravity; + + //add velocity to position + x[i] += velX[i]; + y[i] += velY[i]; + + //bounce ball if it hits walls + if (x[i] + diam[i]/2 >= width) { + velX[i] = -abs(velX[i]); //if the ball hits the right wall, assign x velocity the negative version of itself + } else if (x[i] - diam[i]/2 <= 0) { + velX[i] = abs(velX[i]); //if the ball hits the left wall, assign x velocity the positive version of itself + } + if (y[i] + diam[i]/2 >= height) { + velY[i] = -abs(velY[i]); + } else if (y[i] - diam[i]/2 <= 0) { + velY[i] = abs(velY[i]); + } } } \ No newline at end of file From b831834fb173987b269a6f5068c42ef96d6a666b Mon Sep 17 00:00:00 2001 From: jwong2 Date: Mon, 9 Nov 2015 13:24:15 -0500 Subject: [PATCH 3/6] stable --- GravityBallCode/GravityBallCode.pde | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/GravityBallCode/GravityBallCode.pde b/GravityBallCode/GravityBallCode.pde index c461632..be2c8ab 100644 --- a/GravityBallCode/GravityBallCode.pde +++ b/GravityBallCode/GravityBallCode.pde @@ -44,7 +44,8 @@ void draw() { velX[i] = abs(velX[i]); //if the ball hits the left wall, assign x velocity the positive version of itself } if (y[i] + diam[i]/2 >= height) { - velY[i] = -abs(velY[i]); + velY[i] = -abs(velY[i]+gravity); + //y[i] = height - diam[i]; } else if (y[i] - diam[i]/2 <= 0) { velY[i] = abs(velY[i]); } From 2529fdd393668e49e665048634ac9b40c3f5db43 Mon Sep 17 00:00:00 2001 From: jwong2 Date: Tue, 10 Nov 2015 12:18:03 -0500 Subject: [PATCH 4/6] Changes color on contact --- GravityBallCode/GravityBallCode.pde | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/GravityBallCode/GravityBallCode.pde b/GravityBallCode/GravityBallCode.pde index be2c8ab..4fc7735 100644 --- a/GravityBallCode/GravityBallCode.pde +++ b/GravityBallCode/GravityBallCode.pde @@ -6,6 +6,7 @@ float[] y = new float[count]; float[] velX = new float[count]; float[] velY = new float[count]; float[] diam = new float[count]; +color[] cColor = new color[count]; void setup() { @@ -18,6 +19,7 @@ void setup() { diam[i] = 80; velX[i] = random(-5, 5); velY[i] = random(-5, 5); + cColor[i] = color(255); } gravity = 1; } @@ -28,6 +30,7 @@ void draw() { //draw ball for(int i = 0; i < count; i++) { + fill(cColor[i]); //fill the circle color ellipse(x[i], y[i], diam[i], diam[i]); //add velocity @@ -36,7 +39,11 @@ void draw() { //add velocity to position x[i] += velX[i]; y[i] += velY[i]; - + + if(dist(x[i],y[i],mouseX, mouseY) <= diam[i]/2) { //if mouse is in the circle + cColor[i] = color(random(255),random(255),random(255)); + } + //bounce ball if it hits walls if (x[i] + diam[i]/2 >= width) { velX[i] = -abs(velX[i]); //if the ball hits the right wall, assign x velocity the negative version of itself From 020df96aceecf0a63a583ddddecd374c12f26e48 Mon Sep 17 00:00:00 2001 From: jwong2 Date: Tue, 10 Nov 2015 12:23:54 -0500 Subject: [PATCH 5/6] Final --- GravityBallCode/GravityBallCode.pde | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/GravityBallCode/GravityBallCode.pde b/GravityBallCode/GravityBallCode.pde index 4fc7735..5697bdb 100644 --- a/GravityBallCode/GravityBallCode.pde +++ b/GravityBallCode/GravityBallCode.pde @@ -40,7 +40,7 @@ void draw() { x[i] += velX[i]; y[i] += velY[i]; - if(dist(x[i],y[i],mouseX, mouseY) <= diam[i]/2) { //if mouse is in the circle + if(dist(x[i],y[i],mouseX, mouseY) <= diam[i]/2) { //if mouse is in the circle (if the distance between mouse and center is less than the radius) cColor[i] = color(random(255),random(255),random(255)); } @@ -51,7 +51,7 @@ void draw() { velX[i] = abs(velX[i]); //if the ball hits the left wall, assign x velocity the positive version of itself } if (y[i] + diam[i]/2 >= height) { - velY[i] = -abs(velY[i]+gravity); + velY[i] = -abs(velY[i]+gravity); //to make it avoid sinking since one frame is skipped //y[i] = height - diam[i]; } else if (y[i] - diam[i]/2 <= 0) { velY[i] = abs(velY[i]); From 70355334266f363fb375b899e2b237958d3dfb92 Mon Sep 17 00:00:00 2001 From: jwong2 Date: Tue, 10 Nov 2015 12:24:19 -0500 Subject: [PATCH 6/6] Added a picture --- quicksketch.png | Bin 0 -> 7088 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 quicksketch.png diff --git a/quicksketch.png b/quicksketch.png new file mode 100644 index 0000000000000000000000000000000000000000..f9e6ccb60f209f0715a57c0cf20d8fe61e71c933 GIT binary patch literal 7088 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 Dd>nPQ literal 0 HcmV?d00001