Your browser does not support the canvas tag.

previous        Show / Hide Source        Download        next
//A program that lets the user shoot a basketball into a net.

//Variables
float gravityBallX = 100;
float gravityBallY = 150;
float accelerate = 0;
float gravity = 0.2;
float score = 0; 

//Sets up the regular settings
void setup(){
  size (400,400);
  ellipseMode (CENTER);
  rectMode (CORNERS);
}

//Draws all specified items
void draw() {
 
//background changes colour dependent on mouse location
  background (0, 170-mouseY/3,255-mouseY/2);
 
//The Ground
  rect (0,400,400,390);
  
//draws specified items  
  TheCity();
  drawgravityBall();
  drawNet();
  drawNetCatcher();
  drawBall();
  
//if user gets the ball to the net it will output "Nice Shot!"
   if (gravityBallX > 290 && gravityBallX < 320 && gravityBallY >= 215 && gravityBallY >= 190 && gravityBallY >=220 && gravityBallY >=195) {
     println ("Nice Shot!");
     
   }
     
}

//Draws the Net
void drawNet(){
  
//Pole of the net
  fill(50);
  rect (350,150,330,390);
  
//Backboard of the net
  fill(155);
  rect (310,150,370,220);
  fill(#FF9727);
  
 
 //looped clouds to shorten code
  fill(255);
   for (int i = 0; i < 8; i++){
     noStroke();
     ellipse (i * 90, 40,120,120);
    stroke(1);}
  
}

//Little building in the background
void TheCity(){
  fill(50);
  rect (50,390,125,200);
  rect (70,190,90,200);
}

//the net for the basketball
void drawNetCatcher(){
 fill(#D82B00);
  rect(290,215,320,220);
  noStroke();
  rect(320,205,360,165);
  
  fill(#B7B7B7);
  quad(290,220,320,220,310,250,300,250);
  stroke(1);
}

void drawBall(){
  fill(#FF9727);
  ellipse(gravityBallX,gravityBallY,20,20);
}

//gravity for the basketball
void drawgravityBall(){
  gravityBallY=gravityBallY+accelerate;
  accelerate = accelerate + gravity;
  
//Code that allows the user to move the ball
  if (gravityBallY>height) {
    accelerate = accelerate * -1;
    
    
    gravityBallY = height;
  }

    
    if (key=='A' || key == 'a'){
      gravityBallX = gravityBallX-3;
    }
    
    if (key=='D' || key == 'd'){
      gravityBallX = gravityBallX+3;
    }
    

}