/* A wolf howls at the moon By Jennifer Stienstra */ void setup() { size(400, 400); println("Click mouse to howl"); } void draw() { //sky background(9, 3, 95); //change framerate to make stars look more "twinkly" frameRate(120); //ground fill(22, 62, 13); //changed rect mode to CORNERS, which creates the rectangle using the upper left corner and the bottom right corner. That's the shape mode I prefer rectMode(CORNERS); rect(0, 320, 400, 400); //moon fill(250, 250, 225); //ellipse mode CORNER creates the ellipse with the upper left corner and the width and height for shape. This is my prefered mode for ellipses ellipseMode(CORNER); ellipse(300, 20, 60, 60); //stars //no stroke means the shapes don't have an outline noStroke(); //star 1 //brightness added to fill to change opacity and make it look like the stars are twinkling //fill includes the rgb values fill(255, 255, 167, brightness(mouseX-20)); triangle(80, 40, 90, 55, 70, 55); triangle(80, 60, 90, 45, 70, 45); //star 2 fill(255, 255, 167, brightness(mouseX-5)); triangle (270, 120, 280, 135, 260, 135); triangle(270, 140, 280, 125, 260, 125); //star 3 fill(255, 255, 167, brightness(mouseX)); triangle(250, 20, 260, 35, 240, 35); triangle(250, 40, 260, 25, 240, 25); //star 4 fill(255, 255, 167, brightness(mouseX+5)); triangle(70, 140, 80, 155, 60, 155); triangle(70, 160, 80, 145, 60, 145); //star 5 fill(255, 255, 167, brightness(mouseX-10)); triangle(370, 100, 380, 115, 360, 115); triangle(370, 120, 380, 105, 360, 105); //star 6 fill(255, 255, 167, brightness(mouseX+15)); triangle(190, 60, 200, 75, 180, 75); triangle(190, 80, 200, 65, 180, 65); //star 7 fill(255, 255, 167, brightness(mouseX+9)); triangle(150, 110, 160, 125, 140, 125); triangle(150, 130, 160, 115, 140, 115); //star 8 fill(255, 255, 167, brightness(mouseX-14)); triangle(30, 80, 40, 95, 20, 95); triangle(30, 100, 40, 85, 20, 85); brightness(255); //wolf (oh god) //wolf legs fill (65); //leg one //rectmode is corner, using the x and y coordinates of the upper left corner and the width and height rectMode(CORNER); rect(110, 280, 10, 40); //leg 2 rectMode(CORNER); rect(130, 280, 10, 40); //leg 3 rectMode(CORNER); rect(160, 280, 10, 40); //leg4 rectMode(CORNER); rect(180, 280, 10, 40); //wolf body fill (75); rectMode(CORNER); rect(100, 240, 100, 40); //wolf tail fill (65); triangle(100, 240, 70, 270, 100, 255); //wolf neck rectMode(CORNER); rect(180, 230, 20, 10); //not sure if I should make the neck the same colour as the body and head //wolf head fill(75); rectMode(CORNER); rect(180, 210, 40, 20); //wolf eye fill(0); ellipseMode(CORNER); ellipse(205, 213, 8, 8); //wolf mouth stroke(0); line(205, 225, 220, 225); //wolf ear noStroke(); fill(65); triangle(190, 200, 185, 210, 195, 210); } //animated bit void mousePressed() { //slow down frame rate to show wolf howling frameRate(1); //sky background(9, 3, 95); //WOLF HOWLING println("AWOOOOOOOOOOO"); //ground fill(22, 62, 13); rectMode(CORNERS); rect(0, 320, 400, 400); //moon fill(250, 250, 225); ellipseMode(CORNER); ellipse(300, 20, 60, 60); //stars fill(255, 255, 167); noStroke(); //stars don't twinkle because framerate is too slow //star 1 triangle(80, 40, 90, 55, 70, 55); triangle(80, 60, 90, 45, 70, 45); //star 2 triangle (270, 120, 280, 135, 260, 135); triangle(270, 140, 280, 125, 260, 125); //star 3 triangle(250, 20, 260, 35, 240, 35); triangle(250, 40, 260, 25, 240, 25); //star 4 triangle(70, 140, 80, 155, 60, 155); triangle(70, 160, 80, 145, 60, 145); //star 5 triangle(370, 100, 380, 115, 360, 115); triangle(370, 120, 380, 105, 360, 105); //star 6 triangle(190, 60, 200, 75, 180, 75); triangle(190, 80, 200, 65, 180, 65); //star 7 triangle(150, 110, 160, 125, 140, 125); triangle(150, 130, 160, 115, 140, 115); //star 8 triangle(30, 80, 40, 95, 20, 95); triangle(30, 100, 40, 85, 20, 85); //wolf (oh god) //wolf legs fill (65); //leg one rectMode(CORNER); rect(110, 280, 10, 40); //leg 2 rectMode(CORNER); rect(130, 280, 10, 40); //leg 3 rectMode(CORNER); rect(160, 280, 10, 40); //leg4 rectMode(CORNER); rect(180, 280, 10, 40); //wolf body fill (75); rectMode(CORNER); rect(100, 240, 100, 40); //wolf tail fill (65); triangle(100, 240, 70, 270, 100, 255); //wolf neck rectMode(CORNER); rect(180, 230, 20, 10); //howl head fill(75); quad(185, 240, 172, 225, 203, 196, 215, 213); // howl eyes stroke(0); noFill(); arc(198, 203, 10, 10, radians(100+80), radians(170+80)); // howl mouth noStroke(); fill(0); ellipseMode(CORNER); ellipse(205, 209, 6, 6); //howl ear fill(65); triangle(172, 215, 180, 218, 174, 223); }