/*
||||||||||||||||||||||||||||||||||||||||||||
|| 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);
}
*/