From 88a3f1ec3738c596483390581c2d7780f44660ac Mon Sep 17 00:00:00 2001 From: twang1999 Date: Mon, 14 Dec 2015 14:37:39 -0500 Subject: [PATCH 01/13] function works for one ball --- raindropGameCode/raindrop.pde | 33 +++++++++++++++++++++++++++ raindropGameCode/raindropGameCode.pde | 4 ++-- 2 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 raindropGameCode/raindrop.pde diff --git a/raindropGameCode/raindrop.pde b/raindropGameCode/raindrop.pde new file mode 100644 index 0000000..91e1ccf --- /dev/null +++ b/raindropGameCode/raindrop.pde @@ -0,0 +1,33 @@ +class Raindrop { //declaring all fileds contained within Raindrop Class + PVector loc, vel, acc; + int diam; + Raindrop(float x, float y) { + diam = 25; + loc = new PVector(x, y); + vel = new PVector(random(-5, 5), random(-5, 5)); + acc = new PVector(0, .5); + } + void display() { + fill(random(255), random(255), random(255)); + noStroke(); + ellipse(loc.x, loc.y, diam, diam); + } + void fall() { + loc.add(vel); + vel.add(acc); + } + void reset() { + loc.y=0; + vel.set(0, 15); + } + boolean isInContactWith(PVector mouse) { + float d = dist(loc.x, loc.y, mouse.x, mouse.y); + boolean a; + if (d < diam/2) { + a = true; + } else { + a = false; + } + return a; + } +} \ No newline at end of file diff --git a/raindropGameCode/raindropGameCode.pde b/raindropGameCode/raindropGameCode.pde index 944de61..8b89c61 100644 --- a/raindropGameCode/raindropGameCode.pde +++ b/raindropGameCode/raindropGameCode.pde @@ -7,7 +7,7 @@ Raindrop r; //declare a new Raindrop called r void setup() { - size(1200, 800); + size(800, 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 } @@ -23,4 +23,4 @@ void draw() { 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 f0e8454ca1977730dbff39cf57061fd6098ba91a Mon Sep 17 00:00:00 2001 From: twang1999 Date: Mon, 14 Dec 2015 14:48:21 -0500 Subject: [PATCH 02/13] array --- raindropGameCode/raindrop.pde | 12 ++++++------ raindropGameCode/raindropGameCode.pde | 23 ++++++++++++++--------- 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/raindropGameCode/raindrop.pde b/raindropGameCode/raindrop.pde index 91e1ccf..1346d02 100644 --- a/raindropGameCode/raindrop.pde +++ b/raindropGameCode/raindrop.pde @@ -1,20 +1,20 @@ class Raindrop { //declaring all fileds contained within Raindrop Class - PVector loc, vel, acc; + PVector loc, vel, grav; int diam; Raindrop(float x, float y) { diam = 25; loc = new PVector(x, y); vel = new PVector(random(-5, 5), random(-5, 5)); - acc = new PVector(0, .5); + grav = new PVector(0, .5); } void display() { - fill(random(255), random(255), random(255)); + fill(253); noStroke(); ellipse(loc.x, loc.y, diam, diam); } void fall() { - loc.add(vel); - vel.add(acc); + loc.y=loc.y + vel.y; + vel.add(grav); } void reset() { loc.y=0; @@ -22,7 +22,7 @@ class Raindrop { //declaring all fileds contained within Raindrop Class } boolean isInContactWith(PVector mouse) { float d = dist(loc.x, loc.y, mouse.x, mouse.y); - boolean a; + boolean a; if (d < diam/2) { a = true; } else { diff --git a/raindropGameCode/raindropGameCode.pde b/raindropGameCode/raindropGameCode.pde index 8b89c61..0d6dc79 100644 --- a/raindropGameCode/raindropGameCode.pde +++ b/raindropGameCode/raindropGameCode.pde @@ -1,5 +1,6 @@ +int count = 50; PVector mouse; //declare a P -Raindrop r; //declare a new Raindrop called r +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,18 +10,22 @@ Raindrop r; //declare a new Raindrop called r void setup() { size(800, 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 < count; i++) { + r[i] = new Raindrop(random(width), random(-height,0)); + } //Initialize r. The parameters used are the initial x and y positions } void draw() { 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 96662fa7a02453b0cb6fdb532e6085e465449f28 Mon Sep 17 00:00:00 2001 From: twang1999 Date: Fri, 18 Dec 2015 14:22:32 -0500 Subject: [PATCH 03/13] added catcher --- raindropGameCode/catcher.pde | 15 +++++++++++++++ raindropGameCode/raindropGameCode.pde | 5 ++++- 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 raindropGameCode/catcher.pde diff --git a/raindropGameCode/catcher.pde b/raindropGameCode/catcher.pde new file mode 100644 index 0000000..1453e55 --- /dev/null +++ b/raindropGameCode/catcher.pde @@ -0,0 +1,15 @@ +class Catcher{ + PVector loc; + int diam; + Catcher(int cdiam){ + loc = new PVector(); + diam = cdiam; + } + void display(){ + fill(#6F27AA); + ellipse(loc.x,loc.y,diam,diam); + } + void update(){ + loc.set(mouseX,mouseY); + } +} \ No newline at end of file diff --git a/raindropGameCode/raindropGameCode.pde b/raindropGameCode/raindropGameCode.pde index 0d6dc79..44ed408 100644 --- a/raindropGameCode/raindropGameCode.pde +++ b/raindropGameCode/raindropGameCode.pde @@ -1,7 +1,7 @@ int count = 50; PVector mouse; //declare a P Raindrop [] r = new Raindrop [count]; //declare a new Raindrop called r - +Catcher t; // 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 @@ -10,6 +10,7 @@ Raindrop [] r = new Raindrop [count]; //declare a new Raindrop called r void setup() { size(800, 800); mouse = new PVector(); //initialize mouse PVector. value is irrelevant since it will be set at the start of void draw(){} + t = new Catcher(40); for (int i = 0; i < count; i++) { r[i] = new Raindrop(random(width), random(-height,0)); } //Initialize r. The parameters used are the initial x and y positions @@ -18,6 +19,8 @@ void setup() { void draw() { mouse.set(mouseX, mouseY); //set value of mouse as mouseX,mouseY background(0, 200, 255); + t.update(); + t.display(); for (int i = 0; i Date: Fri, 18 Dec 2015 14:47:32 -0500 Subject: [PATCH 04/13] arraylist --- raindropGameCode/raindrop.pde | 2 +- raindropGameCode/raindropGameCode.pde | 46 +++++++++++++++++---------- 2 files changed, 30 insertions(+), 18 deletions(-) diff --git a/raindropGameCode/raindrop.pde b/raindropGameCode/raindrop.pde index 1346d02..973e54e 100644 --- a/raindropGameCode/raindrop.pde +++ b/raindropGameCode/raindrop.pde @@ -18,7 +18,7 @@ class Raindrop { //declaring all fileds contained within Raindrop Class } void reset() { loc.y=0; - vel.set(0, 15); + vel.set(0, 10); } boolean isInContactWith(PVector mouse) { float d = dist(loc.x, loc.y, mouse.x, mouse.y); diff --git a/raindropGameCode/raindropGameCode.pde b/raindropGameCode/raindropGameCode.pde index 44ed408..2a26118 100644 --- a/raindropGameCode/raindropGameCode.pde +++ b/raindropGameCode/raindropGameCode.pde @@ -1,7 +1,8 @@ int count = 50; PVector mouse; //declare a P -Raindrop [] r = new Raindrop [count]; //declare a new Raindrop called r -Catcher t; +ArrayList raindrops = new ArrayList(); +//Raindrop [] r = new Raindrop [count]; //declare a new Raindrop called r +Catcher c; // 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 @@ -10,25 +11,36 @@ Catcher t; void setup() { size(800, 800); mouse = new PVector(); //initialize mouse PVector. value is irrelevant since it will be set at the start of void draw(){} - t = new Catcher(40); - for (int i = 0; i < count; i++) { - r[i] = new Raindrop(random(width), random(-height,0)); - } //Initialize r. The parameters used are the initial x and y positions + c = new Catcher(40); + raindrops.add(new Raindrop(random(width),0)); + //for (int i = 0; i < count; i++) { + // r[i] = new Raindrop(random(width), random(-height,0)); + //Initialize r. The parameters used are the initial x and y positions } void draw() { mouse.set(mouseX, mouseY); //set value of mouse as mouseX,mouseY background(0, 200, 255); - t.update(); - t.display(); - 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 + raindrops.add(new Raindrop(mouseX,mouseY)); + for (int i = raindrops.size()-1; i >= 0; i--){ + Raindrop r = raindrops.get(i); + r.display(); + r.fall(); + if(r.isInContactWith(mouse)){ + raindrops.remove(i); } } -} \ No newline at end of file + c.update(); + c.display(); +} + + //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 53639c2f8238b815153d8d47da4cd12f23811733 Mon Sep 17 00:00:00 2001 From: twang1999 Date: Tue, 22 Dec 2015 14:11:39 -0500 Subject: [PATCH 05/13] fixed raindrop problem --- raindropGameCode/raindrop.pde | 2 +- raindropGameCode/raindropGameCode.pde | 34 ++++++++++++++------------- 2 files changed, 19 insertions(+), 17 deletions(-) diff --git a/raindropGameCode/raindrop.pde b/raindropGameCode/raindrop.pde index 973e54e..e459c82 100644 --- a/raindropGameCode/raindrop.pde +++ b/raindropGameCode/raindrop.pde @@ -1,4 +1,4 @@ -class Raindrop { //declaring all fileds contained within Raindrop Class +class Raindrop { //declaring all fields contained within Raindrop Class PVector loc, vel, grav; int diam; Raindrop(float x, float y) { diff --git a/raindropGameCode/raindropGameCode.pde b/raindropGameCode/raindropGameCode.pde index 2a26118..4e2394b 100644 --- a/raindropGameCode/raindropGameCode.pde +++ b/raindropGameCode/raindropGameCode.pde @@ -1,4 +1,4 @@ -int count = 50; +int count = 150; PVector mouse; //declare a P ArrayList raindrops = new ArrayList(); //Raindrop [] r = new Raindrop [count]; //declare a new Raindrop called r @@ -12,35 +12,37 @@ void setup() { size(800, 800); mouse = new PVector(); //initialize mouse PVector. value is irrelevant since it will be set at the start of void draw(){} c = new Catcher(40); - raindrops.add(new Raindrop(random(width),0)); + raindrops.add(new Raindrop(random(width), 0)); //for (int i = 0; i < count; i++) { // r[i] = new Raindrop(random(width), random(-height,0)); //Initialize r. The parameters used are the initial x and y positions } void draw() { + println(raindrops.size()); mouse.set(mouseX, mouseY); //set value of mouse as mouseX,mouseY background(0, 200, 255); - raindrops.add(new Raindrop(mouseX,mouseY)); - for (int i = raindrops.size()-1; i >= 0; i--){ + raindrops.add(new Raindrop(random(width), 0)); + for (int i = raindrops.size()-1; i >= 0; i--) { Raindrop r = raindrops.get(i); r.display(); r.fall(); - if(r.isInContactWith(mouse)){ + if (r.isInContactWith(mouse)) { + println("kill"); raindrops.remove(i); } } c.update(); c.display(); } - - //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 + +//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 b12d4e30c1a3da9c1e800a54192476d9a8a9a82e Mon Sep 17 00:00:00 2001 From: twang1999 Date: Mon, 4 Jan 2016 13:56:19 -0500 Subject: [PATCH 06/13] pacman image --- raindropGameCode/catcher.pde | 26 +++++++++++++++----------- raindropGameCode/data/pacman.png | Bin 0 -> 9323 bytes raindropGameCode/raindropGameCode.pde | 2 +- 3 files changed, 16 insertions(+), 12 deletions(-) create mode 100644 raindropGameCode/data/pacman.png diff --git a/raindropGameCode/catcher.pde b/raindropGameCode/catcher.pde index 1453e55..dd290e4 100644 --- a/raindropGameCode/catcher.pde +++ b/raindropGameCode/catcher.pde @@ -1,15 +1,19 @@ -class Catcher{ - PVector loc; - int diam; - Catcher(int cdiam){ - loc = new PVector(); - diam = cdiam; +class Catcher { + PVector loc; + PImage pacman; + //int diam; + Catcher(){ + loc = new PVector(); + // diam = cdiam; } - void display(){ - fill(#6F27AA); - ellipse(loc.x,loc.y,diam,diam); + + void display() { //load pacman image + //fill(#6F27AA); + //ellipse(loc.x,loc.y,diam,diam); + pacman = loadImage("pacman.png"); + image(pacman, loc.x, loc.y, 80, 80); } - void update(){ - loc.set(mouseX,mouseY); + void update() { + loc.set(mouseX, mouseY); } } \ No newline at end of file diff --git a/raindropGameCode/data/pacman.png b/raindropGameCode/data/pacman.png new file mode 100644 index 0000000000000000000000000000000000000000..300bb87349881ef9e09e2a21a80e3394c31fb9b3 GIT binary patch literal 9323 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 Date: Mon, 4 Jan 2016 14:48:11 -0500 Subject: [PATCH 07/13] fixed glitches --- raindropGameCode/raindrop.pde | 19 ++++++++++++++----- raindropGameCode/raindropGameCode.pde | 2 ++ 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/raindropGameCode/raindrop.pde b/raindropGameCode/raindrop.pde index e459c82..161be3f 100644 --- a/raindropGameCode/raindrop.pde +++ b/raindropGameCode/raindrop.pde @@ -1,16 +1,24 @@ class Raindrop { //declaring all fields contained within Raindrop Class + PImage redghost; + PImage blueghost; + PImage pinkghost; PVector loc, vel, grav; int diam; + int score = 0; Raindrop(float x, float y) { diam = 25; loc = new PVector(x, y); vel = new PVector(random(-5, 5), random(-5, 5)); - grav = new PVector(0, .5); + grav = new PVector(0, 3); } void display() { - fill(253); - noStroke(); - ellipse(loc.x, loc.y, diam, diam); + //fill(253); + //noStroke(); + //ellipse(loc.x, loc.y, diam, diam); + redghost = loadImage("ghost.png"); + image(redghost, loc.x, loc.y, diam, diam); + textSize(100); + text(score, width/2, height/4); //display score } void fall() { loc.y=loc.y + vel.y; @@ -19,11 +27,12 @@ class Raindrop { //declaring all fields contained within Raindrop Class void reset() { loc.y=0; vel.set(0, 10); + score = score + 1; //scorekeeper } boolean isInContactWith(PVector mouse) { float d = dist(loc.x, loc.y, mouse.x, mouse.y); boolean a; - if (d < diam/2) { + if (d < diam) { a = true; } else { a = false; diff --git a/raindropGameCode/raindropGameCode.pde b/raindropGameCode/raindropGameCode.pde index 0eaa52b..cacfcc5 100644 --- a/raindropGameCode/raindropGameCode.pde +++ b/raindropGameCode/raindropGameCode.pde @@ -1,3 +1,4 @@ + int count = 150; PVector mouse; //declare a P ArrayList raindrops = new ArrayList(); @@ -11,6 +12,7 @@ Catcher c; void setup() { size(800, 800); mouse = new PVector(); //initialize mouse PVector. value is irrelevant since it will be set at the start of void draw(){} + imageMode(CENTER); c = new Catcher(); raindrops.add(new Raindrop(random(width), 0)); //for (int i = 0; i < count; i++) { From 1e675eef4a8b034c190e0275e0ebd3ba470544d0 Mon Sep 17 00:00:00 2001 From: twang1999 Date: Wed, 6 Jan 2016 11:51:41 -0500 Subject: [PATCH 08/13] fixed problems --- raindropGameCode/data/ghost.png | Bin 0 -> 38669 bytes raindropGameCode/data/pinkghost.ico | Bin 0 -> 100680 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 raindropGameCode/data/ghost.png create mode 100644 raindropGameCode/data/pinkghost.ico diff --git a/raindropGameCode/data/ghost.png b/raindropGameCode/data/ghost.png new file mode 100644 index 0000000000000000000000000000000000000000..12d5c329ad109015bb406c533c183c9cd2766400 GIT binary patch literal 38669 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 V+i)eB+0tB8b2CPhP9!_b{txjTb)WzM literal 0 HcmV?d00001 From 0b54a3e596c1b59be0bf895e463ca72d793c6add Mon Sep 17 00:00:00 2001 From: twang1999 Date: Wed, 6 Jan 2016 11:57:59 -0500 Subject: [PATCH 09/13] fixed score --- raindropGameCode/catcher.pde | 11 ++-- raindropGameCode/raindrop.pde | 13 ++--- raindropGameCode/raindropGameCode.pde | 77 ++++++++++++++++++--------- 3 files changed, 64 insertions(+), 37 deletions(-) diff --git a/raindropGameCode/catcher.pde b/raindropGameCode/catcher.pde index dd290e4..bd17f3d 100644 --- a/raindropGameCode/catcher.pde +++ b/raindropGameCode/catcher.pde @@ -2,16 +2,17 @@ class Catcher { PVector loc; PImage pacman; //int diam; - Catcher(){ - loc = new PVector(); - // diam = cdiam; + Catcher() { + loc = new PVector(); + // diam = cdiam; + pacman = loadImage("pacman.png"); } void display() { //load pacman image //fill(#6F27AA); //ellipse(loc.x,loc.y,diam,diam); - pacman = loadImage("pacman.png"); - image(pacman, loc.x, loc.y, 80, 80); + noTint(); + image(pacman, loc.x, loc.y, 80, 80); } void update() { loc.set(mouseX, mouseY); diff --git a/raindropGameCode/raindrop.pde b/raindropGameCode/raindrop.pde index 161be3f..bfc4926 100644 --- a/raindropGameCode/raindrop.pde +++ b/raindropGameCode/raindrop.pde @@ -5,20 +5,22 @@ class Raindrop { //declaring all fields contained within Raindrop Class PVector loc, vel, grav; int diam; int score = 0; + color c; Raindrop(float x, float y) { diam = 25; loc = new PVector(x, y); vel = new PVector(random(-5, 5), random(-5, 5)); - grav = new PVector(0, 3); + grav = new PVector(0, .001); + redghost = loadImage("ghost.png"); + c = color(random(255),random(255),random(255)); } void display() { //fill(253); //noStroke(); //ellipse(loc.x, loc.y, diam, diam); - redghost = loadImage("ghost.png"); + tint(c); image(redghost, loc.x, loc.y, diam, diam); - textSize(100); - text(score, width/2, height/4); //display score + } void fall() { loc.y=loc.y + vel.y; @@ -27,12 +29,11 @@ class Raindrop { //declaring all fields contained within Raindrop Class void reset() { loc.y=0; vel.set(0, 10); - score = score + 1; //scorekeeper } boolean isInContactWith(PVector mouse) { float d = dist(loc.x, loc.y, mouse.x, mouse.y); boolean a; - if (d < diam) { + if (d < diam/2 + 35) { a = true; } else { a = false; diff --git a/raindropGameCode/raindropGameCode.pde b/raindropGameCode/raindropGameCode.pde index cacfcc5..53e245c 100644 --- a/raindropGameCode/raindropGameCode.pde +++ b/raindropGameCode/raindropGameCode.pde @@ -1,5 +1,6 @@ - +int score = 0; int count = 150; +int gameover; PVector mouse; //declare a P ArrayList raindrops = new ArrayList(); //Raindrop [] r = new Raindrop [count]; //declare a new Raindrop called r @@ -10,7 +11,9 @@ Catcher c; void setup() { - size(800, 800); + size(1000,800); + gameover = 1; + imageMode(CENTER); mouse = new PVector(); //initialize mouse PVector. value is irrelevant since it will be set at the start of void draw(){} imageMode(CENTER); c = new Catcher(); @@ -21,30 +24,52 @@ void setup() { } void draw() { - println(raindrops.size()); - mouse.set(mouseX, mouseY); //set value of mouse as mouseX,mouseY - background(0, 200, 255); - raindrops.add(new Raindrop(random(width), 0)); - for (int i = raindrops.size()-1; i >= 0; i--) { - Raindrop r = raindrops.get(i); - r.display(); - r.fall(); - if (r.isInContactWith(mouse)) { - println("kill"); - raindrops.remove(i); + if (gameover == 1) { + println(raindrops.size()); + mouse.set(mouseX, mouseY); //set value of mouse as mouseX,mouseY + background(0, 200, 255); + raindrops.add(new Raindrop(random(width), 0)); + c.update(); + c.display(); + textSize(100); + text(score,width/2,height/4); + for (int i = raindrops.size()-1; i >= 0; i--) { + Raindrop r = raindrops.get(i); + r.display(); + r.fall(); + if (r.isInContactWith(mouse)) { + println("kill"); + raindrops.remove(i); + } + if(r.loc.y > height + r.diam/2){ + r.reset(); + score = score + 1; + } + } + if (score == 51){ + gameover = 0; + textSize(200); + fill(#FF0808); + textSize(150); + textAlign(CENTER); + text("GAME OVER", width/2, height/2); } } - c.update(); - c.display(); -} -//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 + //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 + // } + //} + if(mousePressed){ + raindrops.clear(); + gameover = 1; + fill(255); + score = 0; + } +} \ No newline at end of file From 9d010365871f8d5a17c3268252ac83883a19c48b Mon Sep 17 00:00:00 2001 From: twang1999 Date: Wed, 6 Jan 2016 13:36:12 -0500 Subject: [PATCH 10/13] fixed score keeping --- raindropGameCode/raindropGameCode.pde | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/raindropGameCode/raindropGameCode.pde b/raindropGameCode/raindropGameCode.pde index 53e245c..83233f0 100644 --- a/raindropGameCode/raindropGameCode.pde +++ b/raindropGameCode/raindropGameCode.pde @@ -11,7 +11,7 @@ Catcher c; void setup() { - size(1000,800); + size(1000, 800); gameover = 1; imageMode(CENTER); mouse = new PVector(); //initialize mouse PVector. value is irrelevant since it will be set at the start of void draw(){} @@ -28,11 +28,11 @@ void draw() { println(raindrops.size()); mouse.set(mouseX, mouseY); //set value of mouse as mouseX,mouseY background(0, 200, 255); + textSize(100); + text(score, width/2, height/4); raindrops.add(new Raindrop(random(width), 0)); c.update(); c.display(); - textSize(100); - text(score,width/2,height/4); for (int i = raindrops.size()-1; i >= 0; i--) { Raindrop r = raindrops.get(i); r.display(); @@ -41,12 +41,12 @@ void draw() { println("kill"); raindrops.remove(i); } - if(r.loc.y > height + r.diam/2){ - r.reset(); - score = score + 1; - } + if (r.loc.y > height + r.diam/2) { + r.reset(); + score = score + 1; + } } - if (score == 51){ + if (score == 51) { gameover = 0; textSize(200); fill(#FF0808); @@ -66,7 +66,7 @@ void draw() { // r[i].reset(); //if it does, reset the raindrop // } //} - if(mousePressed){ + if (mousePressed) { raindrops.clear(); gameover = 1; fill(255); From 3aa5508b36d348ace0af8943514916b8d7df3726 Mon Sep 17 00:00:00 2001 From: twang1999 Date: Wed, 6 Jan 2016 14:28:12 -0500 Subject: [PATCH 11/13] added comments --- raindropGameCode/raindropGameCode.pde | 40 ++++++++++----------------- 1 file changed, 14 insertions(+), 26 deletions(-) diff --git a/raindropGameCode/raindropGameCode.pde b/raindropGameCode/raindropGameCode.pde index 83233f0..7579c76 100644 --- a/raindropGameCode/raindropGameCode.pde +++ b/raindropGameCode/raindropGameCode.pde @@ -1,7 +1,7 @@ -int score = 0; +int score = 0; //declare variables int count = 150; int gameover; -PVector mouse; //declare a P +PVector mouse; ArrayList raindrops = new ArrayList(); //Raindrop [] r = new Raindrop [count]; //declare a new Raindrop called r Catcher c; @@ -10,34 +10,31 @@ Catcher c; // You can start out by just using the single Raindrop as you test -void setup() { +void setup() { //initialize varialbes size(1000, 800); gameover = 1; - imageMode(CENTER); + imageMode(CENTER); //center the image/text mouse = new PVector(); //initialize mouse PVector. value is irrelevant since it will be set at the start of void draw(){} imageMode(CENTER); c = new Catcher(); raindrops.add(new Raindrop(random(width), 0)); - //for (int i = 0; i < count; i++) { - // r[i] = new Raindrop(random(width), random(-height,0)); - //Initialize r. The parameters used are the initial x and y positions } void draw() { - if (gameover == 1) { + if (gameover == 1) { //if game is running println(raindrops.size()); mouse.set(mouseX, mouseY); //set value of mouse as mouseX,mouseY - background(0, 200, 255); - textSize(100); + background(0, 200, 255); + textSize(100); //score displays on screen text(score, width/2, height/4); - raindrops.add(new Raindrop(random(width), 0)); + raindrops.add(new Raindrop(random(width), 0)); c.update(); c.display(); - for (int i = raindrops.size()-1; i >= 0; i--) { + for (int i = raindrops.size()-1; i >= 0; i--) { //array for raindrops Raindrop r = raindrops.get(i); r.display(); r.fall(); - if (r.isInContactWith(mouse)) { + if (r.isInContactWith(mouse)) { //remove raindrop/ghost when in contact with mouse println("kill"); raindrops.remove(i); } @@ -46,8 +43,10 @@ void draw() { score = score + 1; } } - if (score == 51) { + if (score == 51) { //gameover when score is 51 gameover = 0; + } + if (gameover == 0){ //text GAME OVER on screen when game is over textSize(200); fill(#FF0808); textSize(150); @@ -55,18 +54,7 @@ void draw() { text("GAME OVER", width/2, height/2); } } - - //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 - // } - //} - if (mousePressed) { + if (mousePressed) { //freeze screen when game is over so ghosts and catcher remain still raindrops.clear(); gameover = 1; fill(255); From dfa5ccc3a161c61d32e2209d3aabb3888b8e52aa Mon Sep 17 00:00:00 2001 From: twang1999 Date: Wed, 6 Jan 2016 14:31:19 -0500 Subject: [PATCH 12/13] comments --- raindropGameCode/catcher.pde | 10 ++++------ raindropGameCode/raindrop.pde | 15 ++++++--------- raindropGameCode/raindropGameCode.pde | 2 +- 3 files changed, 11 insertions(+), 16 deletions(-) diff --git a/raindropGameCode/catcher.pde b/raindropGameCode/catcher.pde index bd17f3d..c448ec2 100644 --- a/raindropGameCode/catcher.pde +++ b/raindropGameCode/catcher.pde @@ -1,20 +1,18 @@ -class Catcher { +class Catcher { //declare new catcher PVector loc; PImage pacman; //int diam; - Catcher() { + Catcher() { //initiatize catcher variable loc = new PVector(); // diam = cdiam; pacman = loadImage("pacman.png"); } - void display() { //load pacman image - //fill(#6F27AA); - //ellipse(loc.x,loc.y,diam,diam); + void display() { //display catcher field noTint(); image(pacman, loc.x, loc.y, 80, 80); } - void update() { + void update() { //mouse is with catcher loc.set(mouseX, mouseY); } } \ No newline at end of file diff --git a/raindropGameCode/raindrop.pde b/raindropGameCode/raindrop.pde index bfc4926..5290ee4 100644 --- a/raindropGameCode/raindrop.pde +++ b/raindropGameCode/raindrop.pde @@ -6,31 +6,28 @@ class Raindrop { //declaring all fields contained within Raindrop Class int diam; int score = 0; color c; - Raindrop(float x, float y) { + Raindrop(float x, float y) { //initiatize constructor diam = 25; loc = new PVector(x, y); vel = new PVector(random(-5, 5), random(-5, 5)); grav = new PVector(0, .001); - redghost = loadImage("ghost.png"); + redghost = loadImage("ghost.png"); c = color(random(255),random(255),random(255)); } - void display() { - //fill(253); - //noStroke(); - //ellipse(loc.x, loc.y, diam, diam); + void display() { //display ghosts with tint colors tint(c); image(redghost, loc.x, loc.y, diam, diam); } - void fall() { + void fall() { //add velocity to ghosts loc.y=loc.y + vel.y; vel.add(grav); } - void reset() { + void reset() { //reset ghosts when disappears off of screen back to top loc.y=0; vel.set(0, 10); } - boolean isInContactWith(PVector mouse) { + boolean isInContactWith(PVector mouse) { //ghosts disappear when catcher is in contact with mouse float d = dist(loc.x, loc.y, mouse.x, mouse.y); boolean a; if (d < diam/2 + 35) { diff --git a/raindropGameCode/raindropGameCode.pde b/raindropGameCode/raindropGameCode.pde index 7579c76..79e16f4 100644 --- a/raindropGameCode/raindropGameCode.pde +++ b/raindropGameCode/raindropGameCode.pde @@ -51,7 +51,7 @@ void draw() { fill(#FF0808); textSize(150); textAlign(CENTER); - text("GAME OVER", width/2, height/2); + text("GAME OVER CLICK TO PLAY AGAIN", width/2, height/2); } } if (mousePressed) { //freeze screen when game is over so ghosts and catcher remain still From 3c413d57be1a27256a390cc96bae3ed679e06eb4 Mon Sep 17 00:00:00 2001 From: twang1999 Date: Fri, 8 Jan 2016 14:09:35 -0500 Subject: [PATCH 13/13] fixed changes --- raindropGameCode/raindropGameCode.pde | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/raindropGameCode/raindropGameCode.pde b/raindropGameCode/raindropGameCode.pde index 79e16f4..f63411c 100644 --- a/raindropGameCode/raindropGameCode.pde +++ b/raindropGameCode/raindropGameCode.pde @@ -22,7 +22,6 @@ void setup() { //initialize varialbes void draw() { if (gameover == 1) { //if game is running - println(raindrops.size()); mouse.set(mouseX, mouseY); //set value of mouse as mouseX,mouseY background(0, 200, 255); textSize(100); //score displays on screen @@ -35,7 +34,6 @@ void draw() { r.display(); r.fall(); if (r.isInContactWith(mouse)) { //remove raindrop/ghost when in contact with mouse - println("kill"); raindrops.remove(i); } if (r.loc.y > height + r.diam/2) { @@ -46,13 +44,13 @@ void draw() { if (score == 51) { //gameover when score is 51 gameover = 0; } + } if (gameover == 0){ //text GAME OVER on screen when game is over textSize(200); fill(#FF0808); textSize(150); textAlign(CENTER); text("GAME OVER CLICK TO PLAY AGAIN", width/2, height/2); - } } if (mousePressed) { //freeze screen when game is over so ghosts and catcher remain still raindrops.clear();