// ASSIGNMENT 1: INTERACTIVE DRAWING void setup() { size (400,400); } void draw() { background (100,100,120); noStroke(); // no apparent use fill(100,100,120); rect(110,50,180,300); // Character model fill(200,200,200,(abs(200-mouseY)+80)); ellipse(200,200,80,80); // character shading fill(100,100,120,150); ellipse(200,200,70,70); ellipse(200,200,70,40); ellipse(200,200,70,10); fill(255,255,255,50); ellipse(200,200,70,70); ellipse(200,200,40,70); ellipse(200,200,10,70); fill(255,255,255,10-(sin(frameCount*.025)*50)+1); ellipse(200,200,90,90); // Curtain system to hide character model fill(100,100,120); rect(110,50,180,mouseY-50); rect(110,400-mouseY,180,mouseY); // Light particles fill(180,255,255,200-(sin(frameCount*.025)*100)+1); ellipse(160,(200-((frameCount*.0165+400)*225))+1,3,3); ellipse(180,(200-(cos(frameCount*.0150)*200))+1,3,3); ellipse(200,(200-(cos(frameCount*.0170+400)*200))+1,3,3); ellipse(220,(200-(cos(frameCount*.0170)*250))+1,3,3); ellipse(240,(200-(cos(frameCount*.0160+400)*250))+1,3,3); ellipse(220,(200-(sin(frameCount*.0165)*250))+1,3,3); ellipse(240,(200-(sin(frameCount*.0150+400)*250))+1,3,3); ellipse(160,(200-(sin(frameCount*.0170+400)*225))+1,3,3); //particle glow fill(180,255,255,80-(sin(frameCount*.025)*50)+1); ellipse(160,(200-((frameCount*.0165+400)*225))+1,10,10); ellipse(180,(200-(cos(frameCount*.0150)*200))+1,10,10); ellipse(200,(200-(cos(frameCount*.0170+400)*200))+1,10,10); ellipse(220,(200-(cos(frameCount*.0170)*250))+1,10,10); ellipse(240,(200-(cos(frameCount*.0160+400)*250))+1,10,10); ellipse(220,(200-(sin(frameCount*.0165)*250))+1,10,10); ellipse(240,(200-(sin(frameCount*.0150+400)*250))+1,10,10); ellipse(160,(200-(sin(frameCount*.0170+400)*225))+1,10,10); // Glow from teleporter nodes fill(255,255,255,30-(sin(frameCount*.025)*20)+1); rect(150,60,100,30); rect(150,60,100,20); rect(150,60,100,10); //bottom node rect(150,310,100,30); rect(150,320,100,20); rect(150,330,100,10); //Beam of light fill(255,255,255,(2-sin(frameCount*.025)*2)+1); rect(150,60,100,280); rect(195,60,10,280); rect(185,60,30,280); rect(170,60,60,280); // Energy rings (animated) fill(80,200,255); rect(140,mouseY,120,10); rect(140,390-mouseY,120,10); //Energy rings (static) fill(80,200,255); rect(140,60,120,10); rect(140,330,120,10); //Energy ring glow fill(200,245,255,(150-(abs(200-mouseY)+1))); rect(135,55,130,20); rect(135,325,130,20); rectMode(CENTER); rect(200,mouseY+5,(180-(abs(200-(mouseY)+1)/2.5)),20); rect(200,395-mouseY,(180-(abs(200-(mouseY)+1)/2.5)),20); rectMode(CORNER); fill(0); // Bottom node duct work (lower connection) rect(110,350,10,30); rect(280,350,10,30); // Bottom node duct work (upper connection) rect(110,350,30,10); rect(260,350,30,10); // Teleporter nodes fill(150,150,150); rect(100,0,200,10); rect(100,390,200,10); rect(140,20,120,30); rect(140,350,120,30); // Bezeled edges of Nodes fill(230,230,230); quad(100,390,110,380,290,380,300,390); quad(100,10,300,10,290,20,110,20); quad(140,50,260,50,250,60,150,60); quad(140,350,150,340,250,340,260,350); // teleporter node highlights fill(255,255,255,180); quad(240,350,230,340,240,340,255,350); rect(240,350,15,30); quad(270,380,280,380,290,390,280,390); rect(280,390,10,10); //upper highlights quad(255,50,240,50,230,60,245,60); rect(240,20,15,30); quad(280,10,270,20,280,20,290,10); rect(280,0,10,10); fill(255); //final highlights quad(243,350,233,340,237,340,252,350); rect(243,350,9,30); quad(273,380,277,380,287,390,283,390); rect(283,390,4,10); quad(253,50,243,50,233,60,240,60); rect(243,20,9,30); quad(283,10,273,20,277,20,287,10); rect(283,0,4,10); //stairs fill(120); rect(150,350,50,50); fill(220); stroke(240); rect(150,350,40,10); rect(140,360,40,10); rect(130,370,40,10); rect(120,380,40,10); rect(110,390,40,10); rect(100,400,40,10); noStroke(); fill(255,255,255); rect(150,350,40,1); rect(140,360,40,1); rect(130,370,40,1); rect(120,380,40,1); rect(110,390,40,1); rect(100,400,40,1); fill(230); triangle(195,390,200,380,200,390); fill(150); rect(195,390,5,10); fill(0); // Bottom node duct work (upper connection) rect(130,350,10,10); rect(260,350,10,10); // Top node duct work (upper connection) rect(110,20,10,30); rect(280,20,10,30); rect(150,20,10,30); rect(230,20,10,30); // Top node duct work (lower connection) rect(110,40,30,10); rect(150,40,20,10); rect(220,40,20,10); rect(260,40,30,10); rect(220,350,20,10); rect(230,350,10,30); }