/*Interactive Medua Drawing: Michael McAllister Fighter jet. Move the mouse around the screen to move the plane/view. Left click on the mouse to get a lock-on indicator. */ //window size 400,400 pixels void setup() { size(400, 400); noSmooth(); } void draw(){ background(165, 200, 230); frameRate(30); // Clouds noStroke(); fill(230, 230, 230); ellipse(50-mouseX/3, 150+mouseY/3, 150+mouseX/3, 5+mouseY/4); noStroke(); fill(240, 240, 240); ellipse(0-mouseX/3, 110+mouseY/3, 100+mouseX/3, 10+mouseY/4); noStroke(); fill(220, 220, 220); ellipse(550-mouseX/3, 20+mouseY/3, 450+mouseX/7, 65+mouseY/4); noStroke(); fill(255, 255, 255); ellipse(50-mouseX/3, 0+mouseY/3, 400+mouseX/3, 55+mouseY/4); // Small plane fill(150, 150, 150); noStroke(); ellipse(0+mouseX, 400-mouseY, 20, 20); fill(120, 120, 120); noStroke(); rect(-20+mouseX, 400-mouseY, 40, 10); fill(120, 120, 120); noStroke(); rect(-25+mouseX, 380-mouseY, 5, 20); fill(120, 120, 120); noStroke(); rect(20+mouseX, 380-mouseY, 5, 20); fill(120, 120, 120); noStroke(); rect(-70+mouseX, 400-mouseY, 50, 5); fill(120, 120, 120); noStroke(); rect(20+mouseX, 400-mouseY, 50, 5); fill(90, 90, 90); noStroke(); ellipse(-20+mouseX, 410-mouseY, 20, 20); fill(90, 90, 90); noStroke(); ellipse(20+mouseX, 410-mouseY, 20, 20); fill(255, 255, 100); stroke(235,30, 30); ellipse(-20+mouseX, 410-mouseY, 10, 10); fill(255, 255, 100); stroke(235, 30, 30); ellipse(20+mouseX, 410-mouseY, 10, 10); // Cockpit framework noFill(); strokeWeight(12.0); stroke(30, 30, 30); ellipse(200, 290, 400, 400); fill(20, 20, 20); noStroke(); rect(80, 270, 240, 140); fill(20, 20, 20); noStroke(); rect(0, 300, 400, 100); noStroke(); fill(60, 60, 60); triangle(150, 240, 0, 290, 0, 390); fill(60, 60, 60); triangle(250, 240, 400, 290, 400, 390); // UI frame base for HUD fill(60, 60, 60); strokeWeight(1.0); rect(150, 140, 10, 100); fill(60, 60, 60); rect(240, 140, 10, 100); fill(45, 45, 45); noStroke(); rect(130, 240, 140, 60); fill(45, 45, 45); noStroke(); triangle(150, 220, 150, 240, 130, 240); fill(45, 45, 45); noStroke(); triangle(160, 220, 160, 240, 180, 240); fill(45, 45, 45); noStroke(); triangle(240, 240, 240, 220, 220, 240); fill(45, 45, 45); noStroke(); triangle(250, 220, 250, 240, 270, 240); fill(45, 45, 45); noStroke(); triangle(270, 260, 270, 300, 300, 260); fill(45, 45, 45); noStroke(); triangle(130, 260, 130, 300, 100, 260); //Consol guage controlls fill(75, 125, 85); stroke(0, 0, 0); ellipseMode(CENTER); ellipse(150, 270, 20, 20); fill(75, 125, 85); stroke(0, 0, 0); ellipseMode(CENTER); ellipse(170, 270, 20, 20); fill(75, 125, 85); stroke(0, 0, 0); ellipseMode(CENTER); ellipse(190, 290, 20, 20); fill(75, 125, 85); stroke(0, 0, 0); ellipseMode(CENTER); ellipse(210, 270, 20, 20); fill(75, 125, 85); stroke(0, 0, 0); ellipseMode(CENTER); ellipse(230, 270, 20, 20); fill(75, 125, 85); stroke(0, 0, 0); rect(240, 260, 30, 20); fill(60, 60, 60); triangle(260, 260, 270, 260, 270, 280); fill(60, 60, 60); triangle(240, 260, 240, 280, 250, 260); // Decorative HUD fill(175, 255, 110, 50); noStroke(); rect(160, 140, 80, 100); stroke(175, 255, 110); noFill(); ellipse(200, 200, 30, 30); stroke(175, 255, 110); noFill(); line(200, 170, 200, 200); stroke(175, 255, 110); noFill(); line(170, 150, 170, 200); stroke(175, 255, 110); noFill(); line(230, 150, 230, 200); stroke(175, 255, 110); noFill(); line(220, 150, 230, 150); stroke(175, 255, 110); noFill(); line(220, 200, 230, 200); stroke(175, 255, 110); noFill(); line(170, 150, 180, 150); stroke(175, 255, 110); noFill(); line(170, 200, 180, 200); // Controlls // Flight stick fill(60, 60, 60); noStroke(); rect(190, 330+mouseY/6, 20, 50); rect(190, 380+mouseY/6, 30, 20); triangle(210, 360+mouseY/6, 210, 380+mouseY/6, 220, 380+mouseY/6); triangle(210, 330+mouseY/6, 210, 350+mouseY/6, 220, 330+mouseY/6); triangle(180, 320+mouseY/6, 200, 320+mouseY/6, 200, 340+mouseY/6); ellipse(205, 320+mouseY/6, 30, 30); fill(230, 40, 40); stroke(0, 0, 0); ellipse(215, 315+mouseY/6, 10, 10); fill(230, 40, 40); rect(180, 310+mouseY/6, 10, 10); fill(230, 40, 40); noStroke(); rect(200, 310+mouseY/6, 10, 20); fill(230, 40, 40); noStroke(); triangle(190, 310+mouseY/6, 200, 310+mouseY/6, 200, 320+mouseY/6); // Rudder petals fill(0, 0, 0); stroke(50, 50, 50); rect(130, 340, 20, 40); fill(0, 0, 0); stroke(50, 50, 50); rect(250, 340, 20, 40); fill(90, 90, 90); rect(120, 320, 40, 30+mouseX/10); fill(90, 90, 90); rect(240, 320, 40, 60-mouseX/10); // Tone Marker BOX noFill(); strokeWeight(2.0); stroke(175, 255, 110); rect(-15+mouseX, 385-mouseY, 30, 30); // Pitch guage + HUD //Top left ammo counter noFill(); strokeWeight(2.0); stroke(175, 255, 110); rect(20, 20, 80, 20); noFill(); strokeWeight(2.0); stroke(175, 255, 110); ellipse(30, 30, 10, 15); noFill(); strokeWeight(2.0); stroke(175, 255, 110); ellipse(40, 30, 10, 15); noFill(); strokeWeight(2.0); stroke(175, 255, 110); line(50, 22.5, 50, 37.5); noFill(); strokeWeight(2.0); stroke(175, 255, 110); ellipse(60, 30, 10, 15); noFill(); strokeWeight(2.0); stroke(175, 255, 110); ellipse(70, 30, 10, 15); noFill(); strokeWeight(2.0); stroke(175, 255, 110); ellipse(80, 30, 10, 15); noFill(); strokeWeight(2.0); stroke(175, 255, 110); ellipse(90, 30, 10, 15); //Right side pitch guage noFill(); strokeWeight(2.0); stroke(175, 255, 110); line( 380, 0, 380, 400); noFill(); strokeWeight(2.0); stroke(175, 255, 110); line(360, -200+mouseY/2, 380, -200+mouseY/2); noFill(); strokeWeight(2.0); stroke(175, 255, 110); line(370, -150+mouseY/2, 380, -150+mouseY/2); noFill(); strokeWeight(2.0); stroke(175, 255, 110); line(360, -100+mouseY/2, 380, -100+mouseY/2); noFill(); strokeWeight(2.0); stroke(175, 255, 110); line(370, -50+mouseY/2, 380, -50+mouseY/2); noFill(); strokeWeight(2.0); stroke(175, 255, 110); line(360, 0+mouseY/2, 380, 0+mouseY/2); noFill(); strokeWeight(2.0); stroke(175, 255, 110); line(370, 50+mouseY/2, 380, 50+mouseY/2); noFill(); strokeWeight(2.0); stroke(175, 255, 110); line(360, 100+mouseY/2, 380, 100+mouseY/2); noFill(); strokeWeight(2.0); stroke(175, 255, 110); line(370, 150+mouseY/2, 380, 150+mouseY/2); noFill(); strokeWeight(2.0); stroke(175, 255, 110); line(360, 200+mouseY/2, 380, 200+mouseY/2); noFill(); strokeWeight(2.0); stroke(175, 255, 110); line(370, 250+mouseY/2, 380, 250+mouseY/2); noFill(); strokeWeight(2.0); stroke(175, 255, 110); line(360, 300+mouseY/2, 380, 300+mouseY/2); noFill(); strokeWeight(2.0); stroke(175, 255, 110); line(370, 350+mouseY/2, 380, 350+mouseY/2); } void mousePressed(){ frameRate(2); noFill(); strokeWeight(3.0); stroke(255, 110, 110); rect(-15+mouseX, 385-mouseY, 30, 30); noFill(); strokeWeight(3.0); stroke(255, 110, 110); rect(-15+mouseX, 415-mouseY, 30, 10); line(-15+mouseX, 385-mouseY, 15+mouseX, 415-mouseY); line(15+mouseX, 385-mouseY, -15+mouseX, 415-mouseY); }