Your browser does not support the canvas tag.

previous        Show / Hide Source        Download        next
/*
File Name: Car go fast 
By: Colin Biliau
Description: Move the mouse from left to right to move the car
and click and hold to make it night time and turn on the headlights 
Release mouse to return to day
*/


void setup () {
  size (400, 400);
}

void draw () {

  frameRate(60);

  background(75, 175, 229);

  //set fill colour to yellow
  fill(255, 255, 0);
  ellipse(350, 50, 30, 30);

  fill(255, 255, 0, 105);
  ellipse(350, 50, 40, 40);

  //set fill colour to pale green
  fill(24, 94, 29);

  //Big Trees in the back
  triangle(-mouseX/20+205, 200, -mouseX/20+240, 150, -mouseX/20+275, 200);
  triangle(-mouseX/20+205, 230, -mouseX/20+240, 180, -mouseX/20+275, 230);
  triangle(-mouseX/20+205, 260, -mouseX/20+240, 210, -mouseX/20+275, 260);

  triangle(-mouseX/20+75, 200, -mouseX/20+110, 150, -mouseX/20+145, 200);
  triangle(-mouseX/20+75, 230, -mouseX/20+110, 180, -mouseX/20+145, 230);
  triangle(-mouseX/20+75, 260, -mouseX/20+110, 210, -mouseX/20+145, 260);

  triangle(-mouseX/5+275, 200, -mouseX/5+310, 150, -mouseX/5+345, 200);
  triangle(-mouseX/5+275, 230, -mouseX/5+310, 180, -mouseX/5+345, 230);
  triangle(-mouseX/5+275, 260, -mouseX/5+310, 210, -mouseX/5+345, 260);

  //tree trunk back
  fill(79, 58, 17);
  rect(-mouseX/20+230, 260, 18, 2000);
  rect(-mouseX/20+100, 260, 18, 2000);
  rect(-mouseX/5+300, 260, 18, 2000);

  //trees front

  //set fill colour to dark green
  fill(7, 86, 13);

  //small trees in the front
  triangle(-mouseX/10+100, 240, -mouseX/10+120, 210, -mouseX/10+140, 240);
  triangle(-mouseX/10+100, 260, -mouseX/10+120, 230, -mouseX/10+140, 260);
  triangle(-mouseX/10+100, 280, -mouseX/10+120, 250, -mouseX/10+140, 280);

  triangle(-mouseX/10+245, 240, -mouseX/10+265, 210, -mouseX/10+285, 240);
  triangle(-mouseX/10+245, 260, -mouseX/10+265, 230, -mouseX/10+285, 260);
  triangle(-mouseX/10+245, 280, -mouseX/10+265, 250, -mouseX/10+285, 280);

  triangle(-mouseX/3+173, 240, -mouseX/3+193, 210, -mouseX/3+213, 240);
  triangle(-mouseX/3+173, 260, -mouseX/3+193, 230, -mouseX/3+213, 260);
  triangle(-mouseX/3+173, 280, -mouseX/3+193, 250, -mouseX/3+213, 280);

  //Tree trunk for small trees in the front
  fill(89, 62, 9);
  rect(-mouseX/10+115, 280, 10, 2000); //I know 2000 is overkill
  rect(-mouseX/10+260, 280, 10, 2000);
  rect(-mouseX/3+188, 280, 10, 2000);

  //floor
  noStroke();
  fill(193, 148, 7);
  rect(0, 300, 401, 150);

  //The body of the car
  fill(175);
  rect(mouseX-10, 270, 35, 20, 5);

  rect(mouseX, 258, 120, 30, 5);

  rect(mouseX+115, 270, 35, 18, 5);

  quad(mouseX+115, 283, mouseX+115, 258, mouseX+150, 270, mouseX+150, 283);
    
  //fill with a transparent black
  fill(0, 0, 0, 150);
  stroke(175);
  strokeWeight(3);
  //windows for the car
  quad(mouseX+7, 258, mouseX+40, 244, mouseX+70, 244, mouseX+70, 258); 
  quad(mouseX+70, 244, mouseX+70, 258, mouseX+115, 258, mouseX+80, 244);

  //Tail lights 
  noStroke();
  fill(255, 0, 0);
  rect(mouseX, 260, 5, 5);
  rect(mouseX, 267, 5, 5);

  //Wheels
  fill(0);
  ellipse(mouseX+30, 290, 25, 25);
  ellipse(mouseX+120, 290, 25, 25);

  //Front Trees
  fill(7, 86, 13);

  triangle(-mouseX/.8+373, 280, -mouseX/.8+393, 250, -mouseX/.8+413, 280);
  triangle(-mouseX/.8+373, 300, -mouseX/.8+393, 270, -mouseX/.8+413, 300);
  triangle(-mouseX/.8+373, 320, -mouseX/.8+393, 290, -mouseX/.8+413, 320);

  triangle(-mouseX/.8+273, 280, -mouseX/.8+293, 250, -mouseX/.8+313, 280);
  triangle(-mouseX/.8+273, 300, -mouseX/.8+293, 270, -mouseX/.8+313, 300);
  triangle(-mouseX/.8+273, 320, -mouseX/.8+293, 290, -mouseX/.8+313, 320);

  triangle(-mouseX/.8+123, 320, -mouseX/.8+143, 280, -mouseX/.8+163, 320);
  triangle(-mouseX/.8+123, 340, -mouseX/.8+143, 310, -mouseX/.8+163, 340);
  triangle(-mouseX/.8+123, 360, -mouseX/.8+143, 330, -mouseX/.8+163, 360);

  triangle(-mouseX/.8+423, 320, -mouseX/.8+443, 280, -mouseX/.8+463, 320);
  triangle(-mouseX/.8+423, 340, -mouseX/.8+443, 310, -mouseX/.8+463, 340);
  triangle(-mouseX/.8+423, 360, -mouseX/.8+443, 330, -mouseX/.8+463, 360);
  //Tree trunk
  fill(89, 62, 9);
  rect(-mouseX/.8+388, 320, 10, 25);
  rect(-mouseX/.8+288, 320, 10, 25);
  rect(-mouseX/.8+138, 360, 10, 25);
  rect(-mouseX/.8+438, 360, 10, 25);


  //when you hold click it changes to night, and the headlights shine
  if (mousePressed) {

    background(2, 17, 43);

    //set fill colour to white
  fill(242, 241, 222);
  ellipse(350, 50, 30, 30);

  fill(242, 241, 222, 100);
  ellipse(350, 50, 40, 40);

//set fill colour to pale green
    fill(24, 94, 29);

    //Big Trees in the back
    triangle(-mouseX/20+205, 200, -mouseX/20+240, 150, -mouseX/20+275, 200);
    triangle(-mouseX/20+205, 230, -mouseX/20+240, 180, -mouseX/20+275, 230);
    triangle(-mouseX/20+205, 260, -mouseX/20+240, 210, -mouseX/20+275, 260);

    triangle(-mouseX/20+75, 200, -mouseX/20+110, 150, -mouseX/20+145, 200);
    triangle(-mouseX/20+75, 230, -mouseX/20+110, 180, -mouseX/20+145, 230);
    triangle(-mouseX/20+75, 260, -mouseX/20+110, 210, -mouseX/20+145, 260);

    triangle(-mouseX/5+275, 200, -mouseX/5+310, 150, -mouseX/5+345, 200);
    triangle(-mouseX/5+275, 230, -mouseX/5+310, 180, -mouseX/5+345, 230);
    triangle(-mouseX/5+275, 260, -mouseX/5+310, 210, -mouseX/5+345, 260);

    //tree trunk back
    fill(79, 58, 17);
    rect(-mouseX/20+230, 260, 18, 2000);
    rect(-mouseX/20+100, 260, 18, 2000);
    rect(-mouseX/5+300, 260, 18, 2000);

    //set fill colour to dark green
    fill(7, 86, 13);
    //small trees in the back
    triangle(-mouseX/10+100, 240, -mouseX/10+120, 210, -mouseX/10+140, 240);
    triangle(-mouseX/10+100, 260, -mouseX/10+120, 230, -mouseX/10+140, 260);
    triangle(-mouseX/10+100, 280, -mouseX/10+120, 250, -mouseX/10+140, 280);

    triangle(-mouseX/10+245, 240, -mouseX/10+265, 210, -mouseX/10+285, 240);
    triangle(-mouseX/10+245, 260, -mouseX/10+265, 230, -mouseX/10+285, 260);
    triangle(-mouseX/10+245, 280, -mouseX/10+265, 250, -mouseX/10+285, 280);

    triangle(-mouseX/3+173, 240, -mouseX/3+193, 210, -mouseX/3+213, 240);
    triangle(-mouseX/3+173, 260, -mouseX/3+193, 230, -mouseX/3+213, 260);
    triangle(-mouseX/3+173, 280, -mouseX/3+193, 250, -mouseX/3+213, 280);

    //Tree trunk
    fill(89, 62, 9);
    rect(-mouseX/10+115, 280, 10, 2000); //I know 2000 is overkill
    rect(-mouseX/10+260, 280, 10, 2000);
    rect(-mouseX/3+188, 280, 10, 2000);

    //floor
    noStroke();
    fill(193, 148, 7);
    rect(0, 300, 401, 150);

    //change fill to a transparent yellow
    fill(255, 255, 0, 75);
    triangle(mouseX+125, 270, mouseX+1000, 100, mouseX+1000, 400);

    //The body of the car
    fill(175);
    rect(mouseX-10, 270, 35, 20, 5);

    rect(mouseX, 258, 120, 30, 5);

    rect(mouseX+115, 270, 35, 18, 5);

    quad(mouseX+115, 283, mouseX+115, 258, mouseX+150, 270, mouseX+150, 283);

    //headlight, only appears when you click
    triangle(mouseX+145, 280, mouseX+125, 280, mouseX+145, 260);

    //fill with a transparent black
    fill(0, 0, 0, 150);
    stroke(175);
    strokeWeight(3);
    //windows for the car
    quad(mouseX+7, 258, mouseX+40, 244, mouseX+70, 244, mouseX+70, 258); 
    quad(mouseX+70, 244, mouseX+70, 258, mouseX+115, 258, mouseX+80, 244);

    //Tail lights 
    noStroke();
    fill(255, 0, 0);
    rect(mouseX, 260, 5, 5);
    rect(mouseX, 267, 5, 5);

    //Wheels
    fill(0);
    ellipse(mouseX+30, 290, 25, 25);
    ellipse(mouseX+120, 290, 25, 25);

    //set fill colour to 
    fill(7, 86, 13);
//Front Trees
    triangle(-mouseX/.8+373, 280, -mouseX/.8+393, 250, -mouseX/.8+413, 280);
    triangle(-mouseX/.8+373, 300, -mouseX/.8+393, 270, -mouseX/.8+413, 300);
    triangle(-mouseX/.8+373, 320, -mouseX/.8+393, 290, -mouseX/.8+413, 320);

    triangle(-mouseX/.8+273, 280, -mouseX/.8+293, 250, -mouseX/.8+313, 280);
    triangle(-mouseX/.8+273, 300, -mouseX/.8+293, 270, -mouseX/.8+313, 300);
    triangle(-mouseX/.8+273, 320, -mouseX/.8+293, 290, -mouseX/.8+313, 320);

    triangle(-mouseX/.8+123, 320, -mouseX/.8+143, 280, -mouseX/.8+163, 320);
    triangle(-mouseX/.8+123, 340, -mouseX/.8+143, 310, -mouseX/.8+163, 340);
    triangle(-mouseX/.8+123, 360, -mouseX/.8+143, 330, -mouseX/.8+163, 360);

    triangle(-mouseX/.8+423, 320, -mouseX/.8+443, 280, -mouseX/.8+463, 320);
    triangle(-mouseX/.8+423, 340, -mouseX/.8+443, 310, -mouseX/.8+463, 340);
    triangle(-mouseX/.8+423, 360, -mouseX/.8+443, 330, -mouseX/.8+463, 360);
    //Tree trunk
    fill(89, 62, 9);
    rect(-mouseX/.8+388, 320, 10, 25);
    rect(-mouseX/.8+288, 320, 10, 25);
    rect(-mouseX/.8+138, 360, 10, 25);
    rect(-mouseX/.8+438, 360, 10, 25);
  }
}