/*Interactive Drawing assignment "Liftoff"
Brent Pemberton
To interact move mouse up and down along canvas.
Spaceship noises optional but reccomended*/
void setup() {
//creates the size of the window as 400 pixels by 400 pixels
size(400, 400);
}
void draw() {
//color of background changes depending on mouses Y position
background(0, 0, mouseY);
//ellipse and rectangles are Center mode
ellipseMode(CENTER);
rectMode(CENTER);
//stars
fill(250, 236, 42);
ellipse(mouseY+190, 180, 5, 5);
fill(250, 236, 42);
ellipse(mouseY+190, 180, 5, 5);
fill(250, 236, 42);
ellipse(mouseY+60, 280, 5, 5);
fill(250, 236, 42);
ellipse(mouseY+180, 80, 5, 5);
fill(250, 236, 42);
ellipse(mouseY+140, 160, 5, 5);
fill(250, 236, 42);
ellipse(mouseY+100, 120, 5, 5);
fill(250, 236, 42);
ellipse(mouseY+290, 150, 5, 5);
fill(250, 236, 42);
ellipse(mouseY+270, 350, 5, 5);
/* the ships "propulsion" drawn behind the
ground so it's only visible when the ship is off the ground */
noStroke();
fill(250, 236, 42);
triangle(170, mouseY, 180, mouseY+30, 190, mouseY);
triangle(190, mouseY, 200, mouseY+30, 210, mouseY);
triangle(210, mouseY, 220, mouseY+30, 230, mouseY);
fill(237, 126, 93);
triangle(170, mouseY, 190, mouseY, 180, mouseY+20);
triangle(190, mouseY, 200, mouseY+20, 210, mouseY);
triangle(210, mouseY, 220, mouseY+20, 230, mouseY);
/*ground of the drawing as the ship moves closer to the bottom of the window the
ground becomes visible */
fill(0, 180, 0);
rect(200, 780-mouseY, 500, 60);
//A cloud
fill(255);
ellipse(mouseY-290, 150, 140, 80);
//The hull of the ship
stroke(0);
fill(150);
rect(200, mouseY-45, 60, 90);
//A window on the hull of the ship
fill(0, 185, 255);
ellipse(200, mouseY-65, 20, 20);
//roof of the ship
fill(220, 0, 0);
triangle(200, mouseY-135, 160, mouseY-90, 240, mouseY-90);
//left fin on ship
fill(220, 0, 0);
triangle(170, mouseY-40, 170, mouseY, 150, mouseY);
//centre fin on ship
fill(220, 0, 0);
triangle(200, mouseY-40, 190, mouseY, 210, mouseY);
//right fin on ship
fill(220, 0, 0);
triangle(230, mouseY-40, 230, mouseY, 250, mouseY);
}