From b80140cd8dfb3a0e57cf8d224d0e0e1527ca9002 Mon Sep 17 00:00:00 2001 From: mmehta21 Date: Tue, 15 Dec 2015 09:03:55 -0500 Subject: [PATCH 1/7] work in progress --- raindropGameCode/Raindrop.pde | 19 +++++++++++++++++++ raindropGameCode/raindropGameCode.pde | 9 ++++++--- 2 files changed, 25 insertions(+), 3 deletions(-) create mode 100644 raindropGameCode/Raindrop.pde diff --git a/raindropGameCode/Raindrop.pde b/raindropGameCode/Raindrop.pde new file mode 100644 index 0000000..f23fa2d --- /dev/null +++ b/raindropGameCode/Raindrop.pde @@ -0,0 +1,19 @@ +class Raindrop { + PVector loc, acc, vel; + Raindrop(float x, float y) { + loc=new PVector(x, y); + } + void fall() { + vel=new PVector(0, 2); + acc=new PVector(0, 9.8); + vel.add(acc); + loc.add(vel); + } + void display() { + fill(255, 0, 10); + ellipse(loc.x, loc.y, 20, 20); + } + void reset(){ + loc.x=0; + } + \ No newline at end of file diff --git a/raindropGameCode/raindropGameCode.pde b/raindropGameCode/raindropGameCode.pde index 944de61..3ba0894 100644 --- a/raindropGameCode/raindropGameCode.pde +++ b/raindropGameCode/raindropGameCode.pde @@ -1,5 +1,6 @@ PVector mouse; //declare a P -Raindrop r; //declare a new Raindrop called r +int count=4; +Raindrop []r= new Raindrop[count];//declare a new Raindrop called r // On your own, create an array of Raindrop objects instead of just one // Use the array instead of the single object @@ -9,7 +10,9 @@ Raindrop r; //declare a new Raindrop called r void setup() { size(1200, 800); mouse = new PVector(); //initialize mouse PVector. value is irrelevant since it will be set at the start of void draw(){} - r = new Raindrop(random(width), 0); //Initialize r. The parameters used are the initial x and y positions + for (int i=0; i height + r.diam/2) { //check to see if the raindrop goes below the bottom of the screen r.reset(); //if it does, reset the raindrop } -} +} \ No newline at end of file From 52d4621add99d2ee49bfda6c3e83ba59f9162615 Mon Sep 17 00:00:00 2001 From: mmehta21 Date: Tue, 15 Dec 2015 09:26:04 -0500 Subject: [PATCH 2/7] hj --- raindropGameCode/Raindrop.pde | 2 +- raindropGameCode/raindropGameCode.pde | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/raindropGameCode/Raindrop.pde b/raindropGameCode/Raindrop.pde index f23fa2d..bb2fdbd 100644 --- a/raindropGameCode/Raindrop.pde +++ b/raindropGameCode/Raindrop.pde @@ -16,4 +16,4 @@ class Raindrop { void reset(){ loc.x=0; } - \ No newline at end of file +} \ No newline at end of file diff --git a/raindropGameCode/raindropGameCode.pde b/raindropGameCode/raindropGameCode.pde index 3ba0894..931dfb3 100644 --- a/raindropGameCode/raindropGameCode.pde +++ b/raindropGameCode/raindropGameCode.pde @@ -16,14 +16,14 @@ void setup() { } void draw() { - mouse.set(mouseX, mouseY); //set value of mouse as mouseX,mouseY + //mouse.set(mouseX, mouseY); //set value of mouse as mouseX,mouseY background(0, 200, 255); - r.fall(); //make the raindrop fall. It should accelerate as if pulled towards the ground by earth's gravity - r.display(); //display the raindrop - if (r.isInContactWith(mouse)) { //check to see if the raindrop is in contact with the point represented by the PVector called mouse - r.reset(); //if it is, reset the raindrop - } - if (r.loc.y > height + r.diam/2) { //check to see if the raindrop goes below the bottom of the screen - r.reset(); //if it does, reset the raindrop - } + []r.fall(); //make the raindrop fall. It should accelerate as if pulled towards the ground by earth's gravity + []r.display(); //display the raindrop + //if (r.isInContactWith(mouse)) { //check to see if the raindrop is in contact with the point represented by the PVector called mouse + // r.reset(); //if it is, reset the raindrop + //} + // if (r.loc.y > height + r.diam/2) { //check to see if the raindrop goes below the bottom of the screen + // r.reset(); //if it does, reset the raindrop + // } } \ No newline at end of file From 5b74b40495af112af0cca533e5757fa8169e49fe Mon Sep 17 00:00:00 2001 From: mmehta21 Date: Thu, 17 Dec 2015 09:23:07 -0500 Subject: [PATCH 3/7] Bucket in progress --- raindropGameCode/Bucket.pde | 4 ++++ raindropGameCode/Raindrop.pde | 20 +++++++++++++++----- raindropGameCode/raindropGameCode.pde | 24 +++++++++++++----------- 3 files changed, 32 insertions(+), 16 deletions(-) create mode 100644 raindropGameCode/Bucket.pde diff --git a/raindropGameCode/Bucket.pde b/raindropGameCode/Bucket.pde new file mode 100644 index 0000000..0b7bba4 --- /dev/null +++ b/raindropGameCode/Bucket.pde @@ -0,0 +1,4 @@ +PVector loc; +class Bucket{ + Bucket(int diam){ + loc.x= \ No newline at end of file diff --git a/raindropGameCode/Raindrop.pde b/raindropGameCode/Raindrop.pde index bb2fdbd..54a3ef3 100644 --- a/raindropGameCode/Raindrop.pde +++ b/raindropGameCode/Raindrop.pde @@ -1,19 +1,29 @@ class Raindrop { + float diam=20; PVector loc, acc, vel; Raindrop(float x, float y) { loc=new PVector(x, y); + vel=PVector.random2D(); + acc=new PVector(0,.05); } void fall() { - vel=new PVector(0, 2); - acc=new PVector(0, 9.8); vel.add(acc); loc.add(vel); } void display() { fill(255, 0, 10); - ellipse(loc.x, loc.y, 20, 20); + ellipse(loc.x, loc.y, diam, diam); } void reset(){ - loc.x=0; + loc.y=0; + loc.x=random(width); + vel=PVector.random2D(); + vel.add(acc); } -} \ No newline at end of file + boolean isInContactWith(PVector mouse){ + return mouse.dist(loc)<= diam/2; +} +} + + + \ No newline at end of file diff --git a/raindropGameCode/raindropGameCode.pde b/raindropGameCode/raindropGameCode.pde index 931dfb3..fa2144d 100644 --- a/raindropGameCode/raindropGameCode.pde +++ b/raindropGameCode/raindropGameCode.pde @@ -1,6 +1,6 @@ PVector mouse; //declare a P -int count=4; -Raindrop []r= new Raindrop[count];//declare a new Raindrop called r +int count=200; +Raindrop[] r= new Raindrop[count];//declare a new Raindrop called r // On your own, create an array of Raindrop objects instead of just one // Use the array instead of the single object @@ -16,14 +16,16 @@ void setup() { } void draw() { - //mouse.set(mouseX, mouseY); //set value of mouse as mouseX,mouseY + mouse.set(mouseX, mouseY); //set value of mouse as mouseX,mouseY background(0, 200, 255); - []r.fall(); //make the raindrop fall. It should accelerate as if pulled towards the ground by earth's gravity - []r.display(); //display the raindrop - //if (r.isInContactWith(mouse)) { //check to see if the raindrop is in contact with the point represented by the PVector called mouse - // r.reset(); //if it is, reset the raindrop - //} - // if (r.loc.y > height + r.diam/2) { //check to see if the raindrop goes below the bottom of the screen - // r.reset(); //if it does, reset the raindrop - // } + for(int i=0;i height + r[i].diam/2) { //check to see if the raindrop goes below the bottom of the screen + r[i].reset(); //if it does, reset the raindrop + } +} } \ No newline at end of file From 4b9d5c1ce73ccc451fc4114bcb0737cc44a1af77 Mon Sep 17 00:00:00 2001 From: mmehta21 Date: Tue, 5 Jan 2016 09:26:23 -0500 Subject: [PATCH 4/7] super broken --- raindropGameCode/Bucket.pde | 13 +++++++++++-- raindropGameCode/Raindrop.pde | 16 ++++++++-------- raindropGameCode/raindropGameCode.pde | 26 +++++++++++++------------- 3 files changed, 32 insertions(+), 23 deletions(-) diff --git a/raindropGameCode/Bucket.pde b/raindropGameCode/Bucket.pde index 0b7bba4..0a4e762 100644 --- a/raindropGameCode/Bucket.pde +++ b/raindropGameCode/Bucket.pde @@ -1,4 +1,13 @@ PVector loc; +float diam; class Bucket{ - Bucket(int diam){ - loc.x= \ No newline at end of file + Bucket(float tDiam){ + tDiam=diam; + loc= new PVector(mouseX,mouseY); + } + + void display(){ + fill(0,255,255); + ellipse(loc.x,loc.y,diam,diam); + } +} \ No newline at end of file diff --git a/raindropGameCode/Raindrop.pde b/raindropGameCode/Raindrop.pde index 54a3ef3..ad39b0b 100644 --- a/raindropGameCode/Raindrop.pde +++ b/raindropGameCode/Raindrop.pde @@ -1,7 +1,7 @@ -class Raindrop { +class Raindrops { float diam=20; PVector loc, acc, vel; - Raindrop(float x, float y) { + Raindrops(float x, float y) { loc=new PVector(x, y); vel=PVector.random2D(); acc=new PVector(0,.05); @@ -20,10 +20,10 @@ class Raindrop { vel=PVector.random2D(); vel.add(acc); } - boolean isInContactWith(PVector mouse){ - return mouse.dist(loc)<= diam/2; + boolean isInContactWith(Bucket other){ + if(loc.dist(other.loc) < diam/2 + other.diam/2){ + return true; + }else{ + return false; } -} - - - \ No newline at end of file +} \ No newline at end of file diff --git a/raindropGameCode/raindropGameCode.pde b/raindropGameCode/raindropGameCode.pde index fa2144d..1eda95a 100644 --- a/raindropGameCode/raindropGameCode.pde +++ b/raindropGameCode/raindropGameCode.pde @@ -1,6 +1,5 @@ PVector mouse; //declare a P -int count=200; -Raindrop[] r= new Raindrop[count];//declare a new Raindrop called r +ArrayList raindrops= new ArrayList();//declare a new Raindrop called r // On your own, create an array of Raindrop objects instead of just one // Use the array instead of the single object @@ -10,22 +9,23 @@ Raindrop[] r= new Raindrop[count];//declare a new Raindrop called r void setup() { size(1200, 800); mouse = new PVector(); //initialize mouse PVector. value is irrelevant since it will be set at the start of void draw(){} - for (int i=0; i=0;i--){ + Raindrops r= raindrops.get(i); + r.fall(); //make the raindrop fall. It should accelerate as if pulled towards the ground by earth's gravity + r.display(); //display the raindrop + if (r.isInContactWith(20) { //check to see if the raindrop is in contact with the point represented by the PVector called mouse + raindrops.remove(i); //if it is, reset the raindrop } - if (r[i].loc.y > height + r[i].diam/2) { //check to see if the raindrop goes below the bottom of the screen - r[i].reset(); //if it does, reset the raindrop + if (r.loc.y > height + r.diam/2) { //check to see if the raindrop goes below the bottom of the screen + raindrops.remove(i); //if it does, reset the raindrop } } } \ No newline at end of file From d089760b7b1c314403ff4d3ce610803334909322 Mon Sep 17 00:00:00 2001 From: mmehta21 Date: Tue, 5 Jan 2016 11:53:44 -0500 Subject: [PATCH 5/7] heheeheheheh --- raindropGameCode/Bucket.pde | 11 ++++++----- raindropGameCode/Raindrop.pde | 3 ++- raindropGameCode/raindropGameCode.pde | 27 ++++++++++++++------------- 3 files changed, 22 insertions(+), 19 deletions(-) diff --git a/raindropGameCode/Bucket.pde b/raindropGameCode/Bucket.pde index 0a4e762..caa9ff5 100644 --- a/raindropGameCode/Bucket.pde +++ b/raindropGameCode/Bucket.pde @@ -1,13 +1,14 @@ -PVector loc; + +class Buckets{ + PVector loc; float diam; -class Bucket{ - Bucket(float tDiam){ - tDiam=diam; + Buckets(){ loc= new PVector(mouseX,mouseY); } - void display(){ + void display(float diam){ fill(0,255,255); + loc= new PVector(mouseX,mouseY); ellipse(loc.x,loc.y,diam,diam); } } \ No newline at end of file diff --git a/raindropGameCode/Raindrop.pde b/raindropGameCode/Raindrop.pde index ad39b0b..e2f4a21 100644 --- a/raindropGameCode/Raindrop.pde +++ b/raindropGameCode/Raindrop.pde @@ -20,10 +20,11 @@ class Raindrops { vel=PVector.random2D(); vel.add(acc); } - boolean isInContactWith(Bucket other){ + boolean isInContactWith(Buckets other){ if(loc.dist(other.loc) < diam/2 + other.diam/2){ return true; }else{ return false; } +} } \ No newline at end of file diff --git a/raindropGameCode/raindropGameCode.pde b/raindropGameCode/raindropGameCode.pde index 1eda95a..a9c99d5 100644 --- a/raindropGameCode/raindropGameCode.pde +++ b/raindropGameCode/raindropGameCode.pde @@ -1,5 +1,6 @@ PVector mouse; //declare a P ArrayList raindrops= new ArrayList();//declare a new Raindrop called r +Buckets b = new Buckets(); // On your own, create an array of Raindrop objects instead of just one // Use the array instead of the single object @@ -8,24 +9,24 @@ ArrayList raindrops= new ArrayList();//declare a new Raind void setup() { size(1200, 800); - mouse = new PVector(); //initialize mouse PVector. value is irrelevant since it will be set at the start of void draw(){} + mouse = new PVector();//initialize mouse PVector. value is irrelevant since it will be set at the start of void draw(){} raindrops.add(new Raindrops(mouseX, mouseY)); - Bucket b = new Bucket(20); } - void draw() { - mouse.set(mouseX, mouseY);//set value of mouse as mouseX,mouseY background(0, 200, 255); - for(int i=raindrops.size()-1;i>=0;i--){ - Raindrops r= raindrops.get(i); - r.fall(); //make the raindrop fall. It should accelerate as if pulled towards the ground by earth's gravity - r.display(); //display the raindrop - if (r.isInContactWith(20) { //check to see if the raindrop is in contact with the point represented by the PVector called mouse - raindrops.remove(i); //if it is, reset the raindrop - } - if (r.loc.y > height + r.diam/2) { //check to see if the raindrop goes below the bottom of the screen + mouse.set(mouseX, mouseY);//set value of mouse as mouseX,mouseY + b.display(80); + raindrops.add(new Raindrops(random(width), 0)); + for (int i=raindrops.size()-1; i>=0; i--) { + Raindrops r= raindrops.get(i); + r.fall(); //make the raindrop fall. It should accelerate as if pulled towards the ground by earth's gravity + r.display(); //display the raindrop + if (r.isInContactWith(b)) { //check to see if the raindrop is in contact with the point represented by the PVector called mouse + raindrops.remove(i); //if it is, reset the raindrop + } + if (r.loc.y > height + r.diam/2) { //check to see if the raindrop goes below the bottom of the screen raindrops.remove(i); //if it does, reset the raindrop + } } -} } \ No newline at end of file From 1eeef701d32003e27f2536bc4ce76c1484fbb464 Mon Sep 17 00:00:00 2001 From: mmehta21 Date: Wed, 6 Jan 2016 00:59:21 -0500 Subject: [PATCH 6/7] it works --- raindropGameCode/Bucket.pde | 11 +++++---- raindropGameCode/data/ArialMT-48.vlw | Bin 0 -> 220110 bytes raindropGameCode/raindropGameCode.pde | 32 ++++++++++++++++++-------- 3 files changed, 29 insertions(+), 14 deletions(-) create mode 100644 raindropGameCode/data/ArialMT-48.vlw diff --git a/raindropGameCode/Bucket.pde b/raindropGameCode/Bucket.pde index caa9ff5..ae633cc 100644 --- a/raindropGameCode/Bucket.pde +++ b/raindropGameCode/Bucket.pde @@ -1,14 +1,15 @@ class Buckets{ - PVector loc; -float diam; +PVector loc; +float diam=100; Buckets(){ loc= new PVector(mouseX,mouseY); - } + } - void display(float diam){ + void display(){ fill(0,255,255); - loc= new PVector(mouseX,mouseY); + loc= new PVector(mouseX,height-diam); ellipse(loc.x,loc.y,diam,diam); } + } \ No newline at end of file diff --git a/raindropGameCode/data/ArialMT-48.vlw b/raindropGameCode/data/ArialMT-48.vlw new file mode 100644 index 0000000000000000000000000000000000000000..afeeebfb23f8fa9fa9701b6517235a0068a741ba GIT binary patch literal 220110 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 literal 0 HcmV?d00001 diff --git a/raindropGameCode/raindropGameCode.pde b/raindropGameCode/raindropGameCode.pde index a9c99d5..fb4afe2 100644 --- a/raindropGameCode/raindropGameCode.pde +++ b/raindropGameCode/raindropGameCode.pde @@ -1,32 +1,46 @@ PVector mouse; //declare a P ArrayList raindrops= new ArrayList();//declare a new Raindrop called r Buckets b = new Buckets(); - -// On your own, create an array of Raindrop objects instead of just one -// Use the array instead of the single object -// You can start out by just using the single Raindrop as you test +int stage; +int score=0; +PFont bigger; void setup() { size(1200, 800); - mouse = new PVector();//initialize mouse PVector. value is irrelevant since it will be set at the start of void draw(){} raindrops.add(new Raindrops(mouseX, mouseY)); + stage=1; + bigger=loadFont("ArialMT-48.vlw"); + textFont(bigger,20); } void draw() { + if(stage==1){ + background(0,0,0); + textAlign(CENTER); + text("Score as many point as you can in 30 seconds",width/2,height/2); + text("Click to play",width/2,height/2+20); + if(mousePressed){ + stage=2; + } + } + if(stage==2){ background(0, 200, 255); - mouse.set(mouseX, mouseY);//set value of mouse as mouseX,mouseY - b.display(80); + b.display(); raindrops.add(new Raindrops(random(width), 0)); for (int i=raindrops.size()-1; i>=0; i--) { Raindrops r= raindrops.get(i); r.fall(); //make the raindrop fall. It should accelerate as if pulled towards the ground by earth's gravity r.display(); //display the raindrop if (r.isInContactWith(b)) { //check to see if the raindrop is in contact with the point represented by the PVector called mouse - raindrops.remove(i); //if it is, reset the raindrop - } + raindrops.remove(i);//if it is, reset the raindrop + score=score+1; + fill(255); + text(score,width/2,height/2); + } if (r.loc.y > height + r.diam/2) { //check to see if the raindrop goes below the bottom of the screen raindrops.remove(i); //if it does, reset the raindrop } } +} } \ No newline at end of file From bf21b4236fcbc17d0cc5d6c8d11d09214856671a Mon Sep 17 00:00:00 2001 From: mmehta21 Date: Wed, 6 Jan 2016 11:48:09 -0500 Subject: [PATCH 7/7] done --- raindropGameCode/Bucket.pde | 10 ++-- raindropGameCode/raindropGameCode.pde | 72 ++++++++++++++++----------- 2 files changed, 47 insertions(+), 35 deletions(-) diff --git a/raindropGameCode/Bucket.pde b/raindropGameCode/Bucket.pde index ae633cc..4b9aa5d 100644 --- a/raindropGameCode/Bucket.pde +++ b/raindropGameCode/Bucket.pde @@ -1,12 +1,12 @@ -class Buckets{ -PVector loc; -float diam=100; +class Buckets{ +PVector loc; //variables loc and diam which is the size of the bucket +float diam=100; Buckets(){ - loc= new PVector(mouseX,mouseY); + loc= new PVector(mouseX,mouseY); //create new loc vector } - void display(){ + void display(){ //set a fill and draw circle fill(0,255,255); loc= new PVector(mouseX,height-diam); ellipse(loc.x,loc.y,diam,diam); diff --git a/raindropGameCode/raindropGameCode.pde b/raindropGameCode/raindropGameCode.pde index fb4afe2..6bee8f9 100644 --- a/raindropGameCode/raindropGameCode.pde +++ b/raindropGameCode/raindropGameCode.pde @@ -1,46 +1,58 @@ PVector mouse; //declare a P -ArrayList raindrops= new ArrayList();//declare a new Raindrop called r -Buckets b = new Buckets(); -int stage; +ArrayList raindrops= new ArrayList();//create arraylist named raindrops from class Raindrops +Buckets b = new Buckets(); //make variable b from class Buckets +int stage; //variables stage, score, bigger, time int score=0; PFont bigger; +int time; void setup() { size(1200, 800); - raindrops.add(new Raindrops(mouseX, mouseY)); - stage=1; - bigger=loadFont("ArialMT-48.vlw"); - textFont(bigger,20); + raindrops.add(new Raindrops(mouseX, mouseY)); //create new raindrop at arbitrary location + stage=1; //start stage at 1 + bigger=loadFont("ArialMT-48.vlw"); //load the font + textFont(bigger, 20); //set text to bigger } void draw() { - if(stage==1){ - background(0,0,0); - textAlign(CENTER); - text("Score as many point as you can in 30 seconds",width/2,height/2); - text("Click to play",width/2,height/2+20); - if(mousePressed){ + if (stage==1) { //if stage is equal to 1 + background(0, 0, 0); //background black + textAlign(CENTER); //align text to center + text("Score 100 as quick as possible", width/2, height/2); //write out these things + text("Click to play", width/2, height/2+20); + if (mousePressed) { //when mouse is pressed, go to stage 2 stage=2; } } - if(stage==2){ - background(0, 200, 255); - b.display(); - raindrops.add(new Raindrops(random(width), 0)); - for (int i=raindrops.size()-1; i>=0; i--) { - Raindrops r= raindrops.get(i); - r.fall(); //make the raindrop fall. It should accelerate as if pulled towards the ground by earth's gravity - r.display(); //display the raindrop - if (r.isInContactWith(b)) { //check to see if the raindrop is in contact with the point represented by the PVector called mouse - raindrops.remove(i);//if it is, reset the raindrop - score=score+1; - fill(255); - text(score,width/2,height/2); - } - if (r.loc.y > height + r.diam/2) { //check to see if the raindrop goes below the bottom of the screen - raindrops.remove(i); //if it does, reset the raindrop + if (stage==2) { //when stage is 2 + background(0, 200, 255); //background turquoise + b.display(); //display b variable + raindrops.add(new Raindrops(random(width), 0)); //add raindrops every frame + for (int i=raindrops.size()-1; i>=0; i--) { //for when i is equal to the arraylists size, and the other things + Raindrops r= raindrops.get(i); //basically create raindrops + r.fall(); //make the raindrop fall. It should accelerate as if pulled towards the ground by earth's gravity + r.display(); //display the raindrop + if (r.isInContactWith(b)) { //check to see if the raindrop is in contact with the bucket + raindrops.remove(i);//if it is, reset the raindrop + score=score+1; //add 1 to score every time it touches the bucket + fill(255); //whit + } + if (r.loc.y > height + r.diam/2) { //check to see if the raindrop goes below the bottom of the screen + raindrops.remove(i); //if it does, reset the raindrop + } + text(score, width/2, height/2); //text of score and time + time=millis(); + text(time, width/2, height/2+30); + } + if (score==100) { //when score is 100 go to stage 3 + stage=3; } } -} + if (stage==3) { //when stage 3, troll players by not telling them there time + background(0); + text("You took:", width/2, height/2); + score=score/100; + text("You will never know", width/2, height/2+30); + } } \ No newline at end of file