//Targetz - An Interactive Toy by David Brown// //Knock down each target as they pop up by shooting them with the mock gun.// //Use the left and right arrow keys to control the gun and left control to shoot// float targetOne = 140; float targetTwo = 140; float targetThree = 140; float gunPosition; float ballY = 245; void setup() { size(400, 400); background(130, 200, 225); fill(100, 100, 100); rect(0, 230, 400, 170); gunPosition = 200; } void draw() { float gunX = constrain(gunPosition, 100, 300); //GameStand Base and Supports// //BackBoard// fill(75, 150, 75); rect(90, 80, 220, 120); strokeWeight(3); stroke(40, 70, 33); line(90, 100, 310, 100); line(90, 120, 310, 120); line(90, 140, 310, 140); line(90, 160, 310, 160); line(90, 180, 310, 180); //Targets// target1(); target2(); target3(); //Floor// fill(100, 75, 45); noStroke(); rect(52, 259, 300, 100); //Backwall// fill(135, 85, 20); rect(80, 200, 240, 60); //Left Sidewall// noStroke(); triangle(80, 200, 80, 260, 50, 260); triangle(50, 260, 80, 260, 50, 310); triangle(50, 260, 30, 300, 50, 300); stroke(0); line(30, 300, 80, 200); line(80, 260, 58, 300); //Right SideWall// noStroke(); triangle(320, 200, 320, 260, 350, 260); triangle(320, 260, 350, 260, 350, 310); triangle(350, 260, 350, 300, 370, 300); stroke(0); line(320, 200, 370, 300); line(320, 260, 342, 300); //FrontWall// fill(180, 115, 25); rect(30, 300, 340, 100); //Support Poles// fill(150, 155, 160); rect(10, 80, 20, 320); rect(370, 80, 20, 320); strokeWeight(1); fill(100, 112, 115); rect(80, 80, 10, 180); rect(310, 80, 10, 180); //Carnie// stroke(0); strokeWeight(4); line(330, 299, 325, 270); line(325, 270, 340, 250); line(340, 250, 305, 260); line(305, 260, 320, 299); line(340, 250, 345, 180); strokeWeight(3); line(344, 190, 355, 230); line(355, 230, 345, 245); line(344, 190, 325, 220); line(325, 220, 320, 180); fill(0); ellipse(345, 165, 40, 40); strokeWeight(1); fill(245, 240, 235); rect(318, 173, 15, 5); fill(235, 160, 65); rect(333, 173, 3, 5); noStroke(); fill(255, 100, 25); ellipse(318, 176, 4, 5); //Gun Rail// stroke(30, 30, 30); strokeWeight(4); line(70, 280, 70, 300); line(330, 280, 330, 300); line(70, 280, 330, 280); //Gun// strokeWeight(2); fill(130, 75, 25); rect(gunX -5, 270, 10, 20); fill(100, 100, 120); rect(gunX -5, 255, 10, 15); rect(gunX -3, 250, 6, 5); fill(255, 255, 0); if (keyPressed) { if (keyCode==LEFT) { gunPosition -= 5; } if (keyCode==RIGHT) { gunPosition += 5; } if (keyCode==CONTROL) { ellipse(gunX, ballY, 8, 8); ballY -= 20; if (100<gunX && gunX<140) { targetOne += 10; } if (180<gunX && gunX<220) { targetTwo += 10; } if (260<gunX && gunX<300) { targetThree += 10; } if (ballY<0) { ballY=245; } } } //WINNER!// if (targetOne > 300 && targetTwo > 300 && targetThree > 300) { fill(175, 35, 200); //W// rect(80, 320, 240, 60); line(80, 330, 85, 370); line(85, 370, 95, 370); line(95, 370, 100, 350); line(100, 350, 105, 370); line(105, 370, 115, 370); line(115, 370, 120, 330); line(120, 330, 110, 330); line(110, 330, 105, 345); line(105, 345, 102, 340); line(102, 340, 98, 340); line(98, 340, 95, 345); line(95, 345, 90, 330); line(90, 330, 80, 330); //I// line(120, 330, 150, 330); line(150, 330, 150, 340); line(150, 340, 140, 340); line(140, 340, 140, 360); line(140, 360, 150, 360); line(150, 360, 150, 370); line(150, 370, 120, 370); line(120, 370, 120, 360); line(120, 360, 130, 360); line(130, 360, 130, 340); line(130, 340, 120, 340); line(120, 340, 120, 330); //N// line(150, 370, 150, 330); line(150, 330, 165, 330); line(165, 330, 175, 360); line(175, 360, 175, 330); line(175, 330, 185, 330); line(185, 330, 185, 370); line(185, 370, 170, 370); line(170, 370, 160, 340); line(160, 340, 160, 370); line(160, 370, 150, 370); //N2// line(185, 370, 185, 330); line(185, 330, 200, 330); line(200, 330, 210, 360); line(210, 360, 210, 330); line(210, 330, 220, 330); line(220, 330, 220, 370); line(220, 370, 205, 370); line(205, 370, 195, 340); line(195, 340, 195, 370); line(195, 370, 185, 370); //E// line(220, 370, 220, 330); line(220, 330, 245, 330); line(245, 330, 245, 340); line(245, 340, 230, 340); line(230, 340, 230, 345); line(230, 345, 240, 345); line(240, 345, 240, 355); line(240, 355, 230, 355); line(230, 355, 230, 360); line(230, 360, 245, 360); line(245, 360, 245, 370); line(245, 370, 220, 370); //R// line(250, 370, 250, 330); line(250, 330, 270, 330); line(270, 330, 275, 335); line(275, 335, 275, 345); line(275, 345, 270, 350); line(270, 350, 280, 370); line(280, 370, 270, 370); line(270, 370, 260, 350); line(260, 350, 260, 370); line(260, 370, 250, 370); line(260, 337, 260, 343); line(260, 343, 264, 343); line(264, 343, 266, 340); line(266, 340, 264, 337); line(264, 337, 260, 337); //!// line(295, 330, 305, 330); line(305, 330, 305, 360); line(305, 360, 295, 360); line(295, 360, 295, 330); noFill(); ellipse(300, 370, 10, 10); } //Canvas Roof// strokeWeight(1); fill(200, 0, 0); triangle(100, 0, 100, 80, 0, 80); triangle(300, 0, 300, 80, 400, 80); noStroke(); rect(100, 0, 201, 80); stroke(0); line(100, 80, 300, 80); line(100, 0, 300, 0); fill(255); rect(220, 0, 20, 80); rect(160, 0, 20, 80); rect(100, 0, 20, 80); rect(280, 0, 20, 80); } void target1() { //TargetOne// strokeWeight(2); stroke(0); line(120, targetOne, 120, targetOne+60); fill(255, 0, 0); ellipse(120, targetOne, 40, 40); fill(255); ellipse(120, targetOne, 30, 30); fill(255, 0, 0); ellipse(120, targetOne, 20, 20); fill(255); ellipse(120, targetOne, 10, 10); } void target2() { //TargetTwo// strokeWeight(2); stroke(0); line(200, targetTwo, 200, targetTwo+60); fill(255, 0, 0); ellipse(200, targetTwo, 40, 40); fill(255); ellipse(200, targetTwo, 30, 30); fill(255, 0, 0); ellipse(200, targetTwo, 20, 20); fill(255); ellipse(200, targetTwo, 10, 10); } void target3() { //TargetThree// strokeWeight(2); stroke(0); line(280, targetThree, 280, targetThree+60); fill(255, 0, 0); ellipse(280, targetThree, 40, 40); fill(255); ellipse(280, targetThree, 30, 30); fill(255, 0, 0); ellipse(280, targetThree, 20, 20); fill(255); ellipse(280, targetThree, 10, 10); }