float bodyWidth = random(150, 200); float beardLength = random(580, 700); float cloak = bodyWidth/2; PImage moria1; PImage moria2; PImage bagEnd; float scene; float axe; void setup(){ size(800, 800); moria1 = loadImage("moria10.jpg"); moria2 = loadImage("moria20.jpg"); bagEnd = loadImage("bagEnd.jpg"); noStroke(); smooth(); } void draw(){ scene = random(0, 10); axe = random(0, 10); //chooses between 3 possible backgrounds if(scene >= 0 && scene <= 3){ image(moria1, 0, 0); }else if(scene > 3 && scene <= 6){ image(moria2, 0, 0); }else if(scene > 6 && scene < 10){ image(bagEnd, 0, 0); } //chooses between 3 possible axes if(axe >= 0 && axe <= 3){ fill(125); beginShape(); vertex(355, 520); bezierVertex(330, 500, 320, 490, 290, 500); vertex(290, 500); bezierVertex(280, 480, 290, 450, 350, 420); vertex(350, 420); bezierVertex(350, 490, 380, 490, 385, 500); vertex(385, 500); bezierVertex(400, 505, 410, 540, 460, 530); vertex(460, 530); bezierVertex(455, 570, 430, 590, 380, 600); vertex(380, 600); bezierVertex(390, 575, 375, 550, 355, 520); endShape(); }else if(axe > 3 && axe <= 6){ fill(125); beginShape(); vertex(385, 500); bezierVertex(400, 505, 410, 540, 460, 530); vertex(460, 530); bezierVertex(455, 570, 430, 590, 380, 600); vertex(380, 600); bezierVertex(390, 575, 375, 550, 355, 520); endShape(); }else if(axe > 6 && axe < 10){ fill(125); beginShape(); vertex(355, 520); bezierVertex(330, 500, 320, 490, 290, 500); vertex(290, 500); bezierVertex(280, 480, 290, 450, 350, 420); vertex(350, 420); bezierVertex(350, 490, 380, 490, 385, 500); vertex(385, 500); endShape(); } //axe handle fill(67, 49, 34); quad(140, 725, 130, 715, 350, 520, 360, 530); //axe tip fill(100); quad(350, 520, 360, 530, 395, 500, 385, 490); //legs fill(42, 46, 59); rect(251, 700, 50, 50); rect(199, 700, 50, 50); //feet //fill(31, 36, 49); fill(30); ellipse(276, 750, 60, 20); ellipse(226, 750, 60, 20); //body fill(75); ellipse(250, 630, bodyWidth, 200); //cloak that stays coordinated with body width fill(random(0, 150), random(0, 200), random(0, 150)); rect(250-cloak, 615, 50, 150); rect(200+cloak, 615, 50, 150); beginShape(); vertex(250-cloak, 615); bezierVertex(260-cloak, 550, 280-cloak, 560, 250, 520); vertex(250, 520); bezierVertex(225+cloak, 560, 240+cloak, 550, 250+cloak, 615); vertex(250+cloak, 615); vertex(200+cloak, 615); bezierVertex(195+cloak, 590, 165+cloak, 550, 250, 520); vertex(250, 520); bezierVertex(355-cloak, 520, 330-cloak, 550, 310-cloak, 590); vertex(300-cloak, 615); vertex(250-cloak, 615); endShape(); //head fill(234, 185, 144); ellipse(250, 520, 100, 100); //beard fill(random(50, 100), random(25, 50), random(25, 50)); beginShape(); vertex(200, 520); bezierVertex(190, 550, 200, 570, 250, beardLength); vertex(250, beardLength); bezierVertex(300, 570, 310, 550, 300, 520); vertex(300, 520); bezierVertex(290, 530, 270, 540, 250, 550); vertex(250, 550); bezierVertex(230, 540, 210, 530, 200, 520); endShape(); ellipse(250, 555, 40, 40); //hair beginShape(); vertex(250, 490); bezierVertex(260, 480, 290, 510, 300, 520); vertex(300, 520); bezierVertex(305, 500, 295, 460, 250, 470); vertex(250, 470); bezierVertex(210, 460, 195, 500, 200, 520); vertex(200, 520); bezierVertex(200, 520, 240, 480, 250, 490); endShape(); //nose fill(234, 185, 144); ellipse(250, 530, 15, 15); //eyes fill(255); ellipse(230, 520, 20, 20); ellipse(270, 520, 20, 20); fill(100, 116, 253); ellipse(230, 520, 10, 10); ellipse(270, 520, 10, 10); fill(0); ellipse(230, 520, 5, 5); ellipse(270, 520, 5, 5); noLoop(); }