Your browser does not support the canvas tag.

previous        Show / Hide Source        Download        next
//Nicholas Short
//Shoot-the-target

//player is crrently in military training
//player will move  and fire gun with the intent of hitting the target
//mouse click will shoot individual bullets
//keypressed will express winning state 
//mouse dragged will rapid fire weapon 




void setup(){
  size(400,400);
  rectMode(CENTER);
  ellipseMode(CENTER);
  noCursor();
}

void draw(){
  background(0);
  //moving target on X axis
  rect(sin(frameCount/14)*150+200,190,50,70,20);
  rect(sin(frameCount/14)*150+200,150,30,30,10);
  //bullet holes on moving target
  fill(0);
  stroke(255);
  strokeWeight(2);
  ellipse(sin(frameCount/14)*150+190,183,10,12);
  ellipse(sin(frameCount/14)*150+217,200,10,12);
  ellipse(sin(frameCount/14)*150+206,145,10,12);
  //Walls for cover
  fill(100);
  rect(80,210,80,120);
  //extra layer for color change
   fill(0,200,100,mouseX/400.0*255);
  rect(80,210,80,120);
  //bullet holes for wall
  fill(0);
  stroke(255);
  strokeWeight(4);
  ellipse(70,186,10,12);
  ellipse(90,195,10,12);
  ellipse(80,163,10,12);
  ellipse(100,176,10,12);
  ellipse(72,250,10,12);
  strokeWeight(1);
  fill(100);
  rect(300,230,60,150);
  //layer for color change
  fill(100,0,200,pmouseX/400.0*255);
  rect(300,230,60,150);
  fill(0);
  stroke(255);
  strokeWeight(4);
  ellipse(310,178,10,12);
  ellipse(280,195,10,12);
  ellipse(317,250,10,12);
  ellipse(290,234,10,12);
  
  //ellipse sight
  noFill();
  stroke(255);
  strokeWeight(6);
  ellipse(mouseX,250+mouseY,130,190);
   noFill();
   stroke(255);
   strokeWeight(3);
   ellipse(mouseX,195+mouseY,30,50);
  
   //gun body
   fill(100);
  stroke(255);
          //barrel
  triangle(mouseX-55,270+mouseY,mouseX,190+mouseY,mouseX+55,270+mouseY);
  //gunbody to cover barrel
  rect(mouseX,330+mouseY,180,120,40);
  fill(150);
  rect(mouseX,380+mouseY,210,40);
  rect(mouseX-105,305+mouseY,40,60,40);
  rect(mouseX+105,305+mouseY,40,60,40);
  
  //small sight
  rect(mouseX,200+mouseY,10,15);
   strokeWeight(2);
   stroke(255);
   line(mouseX,185+mouseY,mouseX,195+mouseY);
   
  //lines to fill barrel and create perception of depth 
   stroke(255);
line(mouseX-40,260+mouseY,mouseX+40,260+mouseY);
line(mouseX-30,245+mouseY,mouseX+30,245+mouseY);
line(mouseX-20,230+mouseY,mouseX+20,230+mouseY);
line(mouseX-10,215+mouseY,mouseX+10,215+mouseY);


}

void mousePressed(){
  background(130,70,30);
  //most likely will motivate player to continue shooting 
  println("haha you missed");
  
  //bullets do not necessarily follow mouse. trying to imitate bullet physics
  fill(0);
  stroke(255);
  strokeWeight(3);
  ellipse(mouseX,120+mouseY,10,12);
}

void keyPressed(){
  //shapes to create L that will flash on screen
  fill(255);
  stroke(0,0,255);
  strokeWeight(5);
  //base
  ellipse(200,200,200,200);
  noStroke();
  fill(255,0,0);
  //shapes that form L
  rect(190,190,30,150);
  rect(215,250,80,30);
  println("Take the L");
}

void mouseDragged(){
  //rapid fire
  fill(200,100,0);
  stroke(255,50,0);
  strokeWeight(4);
  ellipse(mouseX,195+mouseY,40,40);
  println("Hold your fire soldier");
  
}