void setup() {
size(400, 400);//set the size of the program
strokeWeight(2);//makes the outlines on things (namely the screens) just a bit thicker
smooth(8);//Ill be honest Im not sure what this does, its supposed to increase the anti ailiaing but either im working on such a small scale that I cant see the difference or Im doing something wrong
}
void draw() {
//colours the background a pleasant pastel teal
background(199,211,232);
//shadow
fill(175,186,204);//makes the shadow a bit darker than the background
ellipse(198,265, 300,90);
//DS body
noStroke();//removes the outline
fill(49,178,255);//colours the DS a middle blue
quad(50,240, 140,290, 350,240, 260,200); //bottom plate
quad(50,240, 260,200, 230,95, 20,110); //top plate
//screens
fill(70);//makes the screens a dark grey
stroke(49,141,255);//gives the screens a dark outline
quad(80,130, 200,120, 220,188, 100,210); //top screen
quad(135,238, 217,222, 275,250, 190,270);//bottom screen
//stars 80-220x 120-210y
stroke(255);//white
point(90,140);
point(100,190);
point(115,200);
point(150,190);
point(150,130);
point(190,130);
point(120,150);
point(130,175);
point(100,160);
point(160,160);
point(200,175);
//spaceship
noStroke();//removes outline
fill(230);//makes the spaceship a very light grey
quad(mouseX/2.3+6,mouseX/-10.5 +180+9.5, mouseX/2.3+10,mouseX/-10.5 +180+24.5, mouseX/2.3+30,mouseX/-10.5 +180+21, mouseX/2.3+26,mouseX/-10.5 +180+6);//positions the body of the ship so that it stays within the screen and moves along an angle. Thanks Paul!
triangle(mouseX/2.3+29.5,mouseX/-10.5 +180+21, mouseX/2.3+25.5,mouseX/-10.5 +180+6, mouseX/2.3+35,mouseX/-10.5 +180+12);//positions the nose of the ship so that it stays within the screen and moves along an angle
//spaceship wings
fill(255,100,100);//pale red
triangle(mouseX/2.3+10,mouseX/-10.5 +180+24.5, mouseX/2.3+12,mouseX/-10.5 +180+30, mouseX/2.3+20,mouseX/-10.5 +180+23);//positions the bottom wing of the ship so that it stays within the screen and moves along an angle
triangle(mouseX/2.3+6,mouseX/-10.5 +180+9.5, mouseX/2.3+5,mouseX/-10.5 +180+4, mouseX/2.3+15,mouseX/-10.5 +180+8);//positions the top wing of the ship so that it stays within the screen and moves along an angle
//exhaust
fill(255,87,31);//red
triangle(mouseX/2.3+6,mouseX/-10.5 +180+9.5, mouseX/2.3+10,mouseX/-10.5 +180+24.5, mouseX/2.3-6,mouseX/-10.5 +180+random(9.5,24.5));//positions the exhaust of the ship so that it stays within the screen and moves along an angle, as well as makes is move w/ random
fill(255,184,31);//orange
triangle(mouseX/2.3+6,mouseX/-10.5 +180+9.5, mouseX/2.3+10,mouseX/-10.5 +180+24.5, mouseX/2.3-6,mouseX/-10.5 +180+random(9.5,24.5));//positions the exhaust of the ship so that it stays within the screen and moves along an angle, as well as makes is move w/ random
fill(254,255,31);//yellow
triangle(mouseX/2.3+6,mouseX/-10.5 +180+9.5, mouseX/2.3+10,mouseX/-10.5 +180+24.5, mouseX/2.3-3,mouseX/-10.5 +180+random(12,28));//positions the exhaust of the ship so that it stays within the screen and moves along an angle, as well as makes is move w/ random
//to hide character as it goes off to the left
fill(49,178,255);//middle blue
quad(80,130, 100,210, 45,220, 20,110);//left side top cover
fill(199,211,232);//light blue
triangle(0,65, 43,241, 0,241);//background cover
//DS body cont.
fill(70,200,255);
quad(50,240, 140,290, 140,310, 50,260);//bottom left pannel
quad(140,290, 350,240, 350,260, 140,310);//bottom right pannel
quad(50,240, 20,110, 13,120, 42,241);//top left pannel
//hinge
noStroke();
fill(49,178,255);//meduim blue
quad(50, 226, 255, 185, 270, 204, 60, 245);//hinge
arc(259, 200, 20, 30, 4.4, TWO_PI+.26);//right side of the hinge
fill(70,200,255);//light blue
arc(50, 242, 20, 30, 4.4, TWO_PI+.26);//left side of the hinge
//buttons - left side
//button bottoms
fill(49,141,255);//dark blue
ellipse(260, 218, 10, 5);//top left
ellipse(255, 227, 10, 5);//bottom left
ellipse(278, 220, 10, 5);//top right
ellipse(273, 229, 10, 5);//bottom left
//button tops
fill(70,200,255);//light blue
ellipse(273, 226, 10, 5);
ellipse(260, 215, 10, 5);
ellipse(278, 217, 10, 5);
ellipse(255, 224, 10, 5);
//buttons - right side
//circle pad
fill(49,141,255);//dark blue
ellipse(115, 252, 36, 20);//shadow
fill(49,178,255);//medium blue
ellipse(115, 253, 30, 15);//depth
fill(70,200,255);//light blue
ellipse(115, 250, 30, 15);//top
//dpad sides+
fill(49,141,255);//dark blue
quad(164,265, 164,270, 150,275, 150,270);//this part is also part of the dpad sides but its not perfectly fit and if rendered togther with the rest of the sides itll look wrong.
//dpad top
fill(70,200,255);//light blue
quad(130,263, 140,260, 160,272, 150,275);
quad(127,270,135,275,164,265,155,260);
//dpad sides
fill(49,141,255);//dark blue
triangle(130,263,130,268,135,267);
quad(160,272,150,275,150,280,160,277);
quad(150,275,150,280,145,277,145,272);
quad(145,272,145,277,135,280,135,275);
quad(135,280,135,275,127,270,127,275);
}