/* "Not So Starry Night" is an outdoor scene depicting a simple camp with a lit fire, mountains in the background, and a moon. Fireflies around the base camp, and clouds moving between mountains are activated on mouse X movement. Ruxandra Gogorici 991437860 */ void setup() { size(400, 400); rectMode(CORNERS); ellipseMode(CORNERS); colorMode(RGB, 255, 255, 255, 100); } void draw() { fill(88, 62, 119); noStroke(); rect(0, 0, 400, 400); //Mountains & Clouds noStroke(); fill(255, 255, 255, 20); ellipseMode(CENTER); ellipse(60+mouseX*2, 210, 100, 50); ellipse(5+mouseX*1.1, 140, 100, 50); ellipse(30+mouseX*1.4, 170, 100, 50); ellipseMode(CORNERS); strokeWeight(3); stroke(174, 161, 186); fill(202, 192, 211); ellipse(270, 90, 600, 900); ellipse(-90, 30, 100, 600); ellipseMode(CORNERS); strokeWeight(3); stroke(174, 161, 186); fill(216, 208, 223); ellipse(50, 140, 270, 600); noStroke(); fill(255, 255, 255, 20); ellipseMode(CENTER); ellipse(-200+mouseX*2.2, 260, 200, 100); ellipse(-110+mouseX*1.6, 90, 200, 80); ellipseMode(CORNERS); strokeWeight(3); stroke(174, 161, 186); fill(225, 219, 231); ellipse(200, 190, 400, 600); //Fire noStroke(); ellipseMode(CENTER); fill(232, 107, 5, 30); ellipse(195, 350, 20, 40); fill(255, 192, 0, 90); ellipse(195, 353, 10*sin(frameCount*0.08), 30*sin(frameCount*0.1)); fill(92, 82, 100); ellipseMode(CORNERS); ellipse(175, 353, 185, 345); rect(180, 355, 210, 345); ellipse(205, 345, 215, 355); //Tent stroke(131, 116, 142); fill(141, 126, 153); rect(75, 315, 130, 360); stroke(162, 148, 174); fill(152, 137, 164); quad(130, 315, 145, 290, 90, 290, 75, 315); stroke(162, 148, 174); fill(162, 148, 174); rect(130, 315, 160, 360); triangle(130, 315, 160, 315, 145, 290); //Grass stroke(93, 80, 105); fill(80, 70, 90); ellipse(-500, 350, 600, 500); //Fireflies ellipseMode(CENTER); fill(255, 240, 73); stroke(255, 240, 73, 90*sin(pmouseX*0.01)); ellipse(1, 305, 2, 2); ellipse(310, 320, 2, 2); ellipse(325, 340, 2, 2); ellipse(360, 325, 2, 2); ellipse(345, 345, 2, 2); ellipse(370, 370, 2, 2); ellipse(180, 300, 2, 2); stroke(255, 240, 73, 90*sin(pmouseY*0.01)); ellipse(195, 320, 2, 2); ellipse(55, 325, 2, 2); ellipse(20, 340, 2, 2); ellipse(90, 325, 2, 2); ellipse(220, 335, 2, 2); ellipse(245, 320, 2, 2); ellipse(170, 330, 2, 2); stroke(255, 240, 73, 90*sin(mouseX*0.01)); ellipse(100, 300, 2, 2); ellipse(120, 355, 2, 2); ellipse(45, 365, 2, 2); ellipse(25, 315, 2, 2); ellipse(300, 335, 2, 2); ellipse(40, 335, 2, 2); ellipse(50, 280, 2, 2); ellipse(65, 345, 2, 2); ellipse(125, 340, 2, 2); ellipse(240, 350, 2, 2); ellipse(270, 335, 2, 2); stroke(255, 240, 73, 90*sin(mouseY*0.01)); ellipse(305, 355, 2, 2); ellipse(275, 295, 2, 2); ellipse(280, 315, 2, 2); ellipse(55, 305, 2, 2); ellipse(365, 335, 2, 2); ellipse(390, 340, 2, 2); ellipse(135, 305, 2, 2); ellipse(135, 305, 2, 2); ellipse(385, 355, 2, 2); //Moon ellipseMode(CORNERS); fill(252, 248, 255); stroke(222, 208, 222); ellipse(245, 25, 315, 95); ellipseMode(CENTER); noStroke(); fill(255, 240, 85, 10); ellipse(265, 60, 80*sin(frameCount*0.01), 80*sin(frameCount*0.01)); ellipse(295, 45, 80*sin(frameCount*0.015), 80*sin(frameCount*0.015)); ellipse(290, 75, 80*sin(frameCount*0.02), 80*sin(frameCount*0.02)); }