Your browser does not support the canvas tag.

previous        Show / Hide Source        Download        next
/*
              ||||||||||||||||||||||||||||||||||||||||||||
              || Interactive Drawing Assignment         || 
              ||                    by: Nick Olivieri   ||
              ||||||||||||||||||||||||||||||||||||||||||||
*/



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

}

void draw() {
  
  background (40, 40, 40); 
  
  frameRate(30);
  
  //stars
  noStroke();
  fill(255, 0 + pmouseX - mouseY);
    ellipse(108, 54, 3, 3);
    ellipse(200, 90, 3, 3);
    ellipse(87, 241, 3, 3);
    ellipse(173, 304, 3, 3);
    ellipse(341, 169, 3, 3);
    ellipse(291, 264, 3, 3);
    ellipse(210, 279, 3, 3);
  
  fill(255, 100 + mouseY - mouseX);
    ellipse(221, 128, 3, 3);
    ellipse(348, 31, 3, 3);
    ellipse(136, 17, 3, 3);
    ellipse(31, 63, 3, 3);
    ellipse(39, 341, 3, 3);
    ellipse(184, 324, 3, 3);
    ellipse(320, 239, 3, 3);
  
  fill(255, 255 - mouseX - mouseY);
    ellipse(320, 322, 3, 3);
    ellipse(215, 111, 3, 3);
    ellipse(260, 40, 3, 3);
    ellipse(99, 125, 3, 3);
    ellipse(150, 205, 3, 3);
    ellipse(250, 196, 3, 3);
  
  //planet 
  fill(230, 95, 50);
  ellipse(650 - mouseX, 650 - mouseY / 7, 750, 500);
 
//asteroids
  //asteroid body 1
  stroke(0);
  fill(80, 77, 70);
  ellipse(350 - pmouseX / 1.5, 50, 45, 45);
    //craters
    fill(65, 65, 65);
    ellipse(355 - pmouseX / 1.5, 40, 15, 15);
    ellipse(342 - pmouseX / 1.5, 57, 10, 12);
    ellipse(362 - pmouseX / 1.5, 55, 5, 7);
      //broken off bits
      ellipse(385 - pmouseX / 2, 40, 15, 15);
      ellipse(342 - pmouseX / 3, 80, 5, 7);
      ellipse(360 - pmouseX / 2.5, 90, 5, 7);
      ellipse(375 - pmouseX / 1, 75, 5, 7);

  //asteroid body 2
  fill(80, 77, 70);
  ellipse(550 - pmouseX * 1.5, 230, 40, 40);
    //craters
    fill(65, 65, 65);
    ellipse(555 - pmouseX * 1.5, 220, 13, 13);
    ellipse(562 - pmouseX * 1.5, 237, 8, 10);
    ellipse(542 - pmouseX * 1.5, 235, 5, 7);
      //broken off bits
      ellipse(520 - pmouseX * 1.2, 220, 13, 13);
      ellipse(562 - pmouseX / 0.8, 200, 8, 10);
      ellipse(530 - pmouseX / 0.5, 260, 5, 7);

  //asteroid body 3
  fill(80, 77, 70);
  ellipse(250 - pmouseX / 0.5, 180, 50, 50);
    //craters
    fill(65, 65, 65);
    ellipse(255 - pmouseX / 0.5, 170, 15, 15);
    ellipse(262 - pmouseX / 0.5, 187, 10, 12);
    ellipse(242 - pmouseX / 0.5, 185, 5, 7);
      //broken off bits
      ellipse(255 - pmouseX / 1.6, 140, 13, 13);
      ellipse(280 - pmouseX * 0.7, 200, 10, 12);
      ellipse(300 - pmouseX, 185, 5, 7);

//space ship
  //ship body
  fill(0, 255, 0);
    quad(107 + mouseX/1.5, 63 + mouseY/1.5, 107 + mouseX/1.5, 78 + mouseY/1.5, 83 + mouseX/1.5, 77 + mouseY/1.5, 83 + mouseX/1.5, 62 + mouseY/1.5);
    quad(142 + mouseX/1.5, 64 + mouseY/1.5, 150 + mouseX/1.5, 66 + mouseY/1.5, 141 + mouseX/1.5, 79 + mouseY/1.5, 83 + mouseX/1.5, 86 + mouseY/1.5);
    quad(112 + mouseX/1.5, 56 + mouseY/1.5, 109 + mouseX/1.5, 52 + mouseY/1.5, 85 + mouseX/1.5, 48 + mouseY/1.5, 78 + mouseX/1.5, 58 + mouseY/1.5);
    quad(112 + mouseX/1.5, 56 + mouseY/1.5, 105 + mouseX/1.5, 62 + mouseY/1.5, 78 + mouseX/1.5, 62 + mouseY/1.5, 78 + mouseX/1.5, 58 + mouseY/1.5);
    triangle(84 + mouseX/1.5, 49 + mouseY/1.5, 70 + mouseX/1.5, 47 + mouseY/1.5, 79 + mouseX/1.5, 56 + mouseY/1.5);
    quad(130 + mouseX/1.5, 79 + mouseY/1.5, 130 + mouseX/1.5, 83 + mouseY/1.5, 73 + mouseX/1.5, 101 + mouseY/1.5, 78 + mouseX/1.5, 89 + mouseY/1.5);
    quad(102 + mouseX/1.5, 77 + mouseY/1.5, 75 + mouseX/1.5, 77 + mouseY/1.5, 75 + mouseX/1.5, 81 + mouseY/1.5, 83 + mouseX/1.5, 84 + mouseY/1.5);
    quad(133 + mouseX/1.5, 75 + mouseY/1.5, 129 + mouseX/1.5, 80 + mouseY/1.5, 80 + mouseX/1.5, 96 + mouseY/1.5, 87 + mouseX/1.5, 81 + mouseY/1.5);
    quad(80 + mouseX/1.5, 63 + mouseY/1.5, 74 + mouseX/1.5, 65 + mouseY/1.5, 74 + mouseX/1.5, 73 + mouseY/1.5, 80 + mouseX/1.5, 76 + mouseY/1.5);
    quad(142 + mouseX/1.5, 63 + mouseY/1.5, 113 + mouseX/1.5, 71 + mouseY/1.5, 106 + mouseX/1.5, 62 + mouseY/1.5, 108 + mouseX/1.5, 77 + mouseY/1.5);
    quad(83 + mouseX/1.5, 62 + mouseY/1.5, 83 + mouseX/1.5, 77 + mouseY/1.5, 80 + mouseX/1.5, 76 + mouseY/1.5, 80 + mouseX/1.5, 62 + mouseY/1.5);
  
  //wind shield
  fill(0, 0, 255, 20);
    quad(113 + mouseX/1.5, 55 + mouseY/1.5, 137 + mouseX/1.5, 60 + mouseY/1.5, 142 + mouseX/1.5, 64 + mouseY/1.5, 113 + mouseX/1.5, 70 + mouseY/1.5);
    triangle(113 + mouseX/1.5, 72 + mouseY/1.5, 106 + mouseX/1.5, 62 + mouseY/1.5, 112 + mouseX/1.5, 55 + mouseY/1.5);
  
  //fire orange
  stroke(255, 159, 33);
  fill(255, 159, 33);
    ellipse(66 + mouseX/1.5, 70 + mouseY/1.5, 11, 11);
    triangle(65 + mouseX/1.5, 64 + mouseY/1.5, 65 + mouseX/1.5, 75 + mouseY/1.5, 39 + mouseX/1.07/1.5, 70 + mouseY/1.5);
  
  //fire yellow
  stroke(255, 238, 34);
  fill(255, 238, 34);
    ellipse(64 + mouseX/1.5, 70 + mouseY/1.5, 9, 7);
    triangle(66 + mouseX/1.5, 73 + mouseY/1.5, 66 + mouseX/1.5, 66 + mouseY/1.5, 45 + mouseX/1.07/1.5, 70 + mouseY/1.5);

  //fading red screen
  fill(200, 0, 0, 0 + (mouseX / 10) + (mouseY / 7));
  rect(0, 0, 400, 400);
}

// Help to find the exact position for points when making everything by simply displaying the mouse x and y coordinates when you click the mouse.
/*
void mousePressed() {  
  println(mouseX + ", " + mouseY);  
}
*/