void setup(){ size(400,400); } void draw(){ //Sky background((mouseX/2)*0.75,135,242); //Sun //Sun Aura ellipseMode(CENTER); stroke(255,249,201,90); strokeWeight(0); fill(255,249,201,50); ellipse(66,91,115,115); //Sun Gap1 stroke((mouseX/2)*0.75,135,242); strokeWeight(0); fill((mouseX/2)*0.75,135,242); ellipse(77*sin((mouseX/400.0)*PI*0.75)+66,77*cos((mouseX/400.0)*PI*0.75)+91,120-(400-mouseX-66)*0.04+3.075*sin(frameCount/10)+2,120-(400-mouseX-66)*0.04); //Sun Gap2 stroke((mouseX/2)*0.75,135,242); strokeWeight(0); fill((mouseX/2)*0.75,135,242); ellipse(77*sin((mouseX/400.0)*PI*0.75-PI/2)+66,77*cos((mouseX/400.0)*PI*0.75-PI/2)+91,120-(400-mouseX-66)*0.04+3.075*sin(frameCount/10)+2,120-(400-mouseX-66)*0.04); //Sun Gap3 stroke((mouseX/2)*0.75,135,242); strokeWeight(0); fill((mouseX/2)*0.75,135,242); ellipse(77*sin((mouseX/400.0)*PI*0.75+PI/2)+66,77*cos((mouseX/400.0)*PI*0.75+PI/2)+91,120-(400-mouseX-66)*0.04+3.075*sin(frameCount/10)+2,120-(400-mouseX-66)*0.04); //Sun Gap4 stroke((mouseX/2)*0.75,135,242); strokeWeight(0); fill((mouseX/2)*0.75,135,242); ellipse(77*sin((mouseX/400.0)*PI*0.75-PI)+66,77*cos((mouseX/400.0)*PI*0.75-PI)+91,120-(400-mouseX-66)*0.04+3.075*sin(frameCount/10)+2,120-(400-mouseX-66)*0.04); //main ellipseMode(CENTER); stroke(255,249,201); strokeWeight(0); fill(255,249,201); ellipse(66,91,34,34); //Ground stroke(1,147,85); //ground colour fill(1,147,85); //ground colour rectMode(CORNER); rect(0,246,400,154); //ground shape //Prince //cape back stroke(173,7,79); strokeWeight(0); fill(173,7,79); quad(294,253,306+16*cos(frameCount/8.0),348,378+16*sin(frameCount/8.0),348,365,250); //Cape flow //base cover ellipseMode(CENTER); stroke(1,147,85); strokeWeight(0); fill(1,147,85); ellipse(317,367,234,60); //test rotate stroke(0); strokeWeight(0); noFill(); //line(317,367,317+117*sin(frameCount/8.0),367-30*cos(frameCount/8.0)); //Gap 1 ellipseMode(CENTER); stroke(1,147,85); strokeWeight(0); fill(1,147,85); ellipse(317+117*sin(frameCount/40.0-PI/(8.5)*1.0),367-30*cos(frameCount/40.0-PI/22.0),40,20); //Gap 2 ellipseMode(CENTER); stroke(1,147,85); strokeWeight(0); fill(1,147,85); ellipse(317+117*sin(frameCount/40.0-PI/(8.5)*3.0),367-30*cos(frameCount/40.0-PI/(8.5)*3.0),40,20); //Gap 3 ellipseMode(CENTER); stroke(1,147,85); strokeWeight(0); fill(1,147,85); ellipse(317+117*sin(frameCount/40.0-PI/(8.5)*5.0),367-30*cos(frameCount/40.0-PI/(8.5)*5.0),40,20); //Gap 4 ellipseMode(CENTER); stroke(1,147,85); strokeWeight(0); fill(1,147,85); ellipse(317+117*sin(frameCount/40.0-PI/(8.5)*7.0),367-30*cos(frameCount/40.0-PI/(8.5)*7.0),40,20); //Gap 5 ellipseMode(CENTER); stroke(1,147,85); strokeWeight(0); fill(1,147,85); ellipse(317+117*sin(frameCount/40.0-PI/(8.5)*9.0),367-30*cos(frameCount/40.0-PI/(8.5)*9.0),40,20); //Gap 6 ellipseMode(CENTER); stroke(1,147,85); strokeWeight(0); fill(1,147,85); ellipse(317+117*sin(frameCount/40.0-PI/(8.5)*11.0),367-30*cos(frameCount/40.0-PI/(8.5)*11.0),40,20); //Gap 7 ellipseMode(CENTER); stroke(1,147,85); strokeWeight(0); fill(1,147,85); ellipse(317+117*sin(frameCount/40.0-PI/(8.5)*13.0),367-30*cos(frameCount/40.0-PI/(8.5)*13.0),40,20); //Gap 8 ellipseMode(CENTER); stroke(1,147,85); strokeWeight(0); fill(1,147,85); ellipse(317+117*sin(frameCount/40.0-PI/(8.5)*15.0),367-30*cos(frameCount/40.0-PI/(8.5)*15.0),40,20); //Ripple 1 ellipseMode(CENTER); stroke(173,7,79); strokeWeight(0); fill(173,7,79); ellipse(317+117*sin(frameCount/40.0),367-30*cos(frameCount/40.0),40,20); //Ripple 2 ellipseMode(CENTER); stroke(173,7,79); strokeWeight(0); fill(173,7,79); ellipse(317+117*sin(frameCount/40.0-PI/(8.5)*2.0),367-30*cos(frameCount/40.0-PI/(8.5)*2.0),40,20); //Ripple 3 ellipseMode(CENTER); stroke(173,7,79); strokeWeight(0); fill(173,7,79); ellipse(317+117*sin(frameCount/40.0-PI/(8.5)*4.0),367-30*cos(frameCount/40.0-PI/(8.5)*4.0),40,20); //Ripple 4 ellipseMode(CENTER); stroke(173,7,79); strokeWeight(0); fill(173,7,79); ellipse(317+117*sin(frameCount/40.0-PI/(8.5)*6.0),367-30*cos(frameCount/40.0-PI/(8.5)*6.0),40,20); //Ripple 5 ellipseMode(CENTER); stroke(173,7,79); strokeWeight(0); fill(173,7,79); ellipse(317+117*sin(frameCount/40.0-PI/(8.5)*8.0),367-30*cos(frameCount/40.0-PI/(8.5)*8.0),40,20); //Ripple 6 ellipseMode(CENTER); stroke(173,7,79); strokeWeight(0); fill(173,7,79); ellipse(317+117*sin(frameCount/40.0-PI/(8.5)*10.0),367-30*cos(frameCount/40.0-PI/(8.5)*10.0),40,20); //Ripple 7 ellipseMode(CENTER); stroke(173,7,79); strokeWeight(0); fill(173,7,79); ellipse(317+117*sin(frameCount/40.0-PI/(8.5)*12.0),367-30*cos(frameCount/40.0-PI/(8.5)*12.0),40,20); //Ripple 4 ellipseMode(CENTER); stroke(173,7,79); strokeWeight(0); fill(173,7,79); ellipse(317+117*sin(frameCount/40.0-PI/(8.5)*14.0),367-30*cos(frameCount/40.0-PI/(8.5)*14.0),40,20); //Additional Covers stroke(1,147,85); strokeWeight(0); fill(1,147,85); quad(154,360,294,253,306+16*cos(frameCount/8.0),348,298,460); rectMode(CORNERS); rect(261,358,401,401); //Arm stroke(255,201,170); strokeWeight(6); //Elbow Arm //line(mouseX*0.195+236+6,mouseX*0.12+ mouseY*0.0775+204+6,314-(400-mouseX)*0.12,253); //arm proto //line(mouseX*0.195+236+6,mouseX*0.12+ mouseY*0.0775+204+6,314,253); //arm proto 2 - alt Shoulder line(mouseX*0.195+236+6,mouseX*0.12+ mouseY*0.0775+204+6,302,248); //Hand ellipseMode(CORNERS); stroke(255,201,170); strokeWeight(0); fill(255,201,170); ellipse(mouseX*0.195+236,mouseX*0.12+ mouseY*0.0775+204,mouseX*0.195+236+12,mouseX*0.12+ mouseY*0.0775+204+12); //finger stroke(255,201,170); strokeWeight(3); line(mouseX*0.195+236+4,mouseX*0.12+ mouseY*0.0775+204+1,mouseX*0.195+236-5,mouseX*0.12+ mouseY*0.0775+204+1+1.075*sin(frameCount)*((322-mouseX)/125)); //Body //Legs rectMode(CORNERS); stroke(121,75,75); strokeWeight(0); fill(121,75,75); rect(307,308,349,364); ellipseMode(CENTER); stroke(121,75,75); strokeWeight(0); fill(121,75,75); //ellipse(328,316,42,14); //main rectMode(CORNERS); stroke(93,101,180); strokeWeight(0); fill(93,101,180); //rect(299,262,348,308); //main alt rectMode(CORNERS); //stroke(108,43,71); stroke(71,43,108); strokeWeight(0); fill(71,43,108); rect(301,262,348,308); //shoulder ellipseMode(CORNERS); stroke(255,0,0); strokeWeight(3); fill(227,34,63); ellipse(289,238,313,267); //shoulder R ellipseMode(CENTER); stroke(227,34,63); strokeWeight(0); fill(227,34,63); ellipse(355,251,20,26); //Collar rectMode(CORNERS); stroke(227,34,63); strokeWeight(0); fill(227,34,63); rect(300,238,355,264); //Collar Fur ellipseMode(CENTER); stroke(230,250,243); strokeWeight(0); fill(230,250,243); ellipse(326,240,40,36); //Left Hand (right in picture) ellipseMode(CENTER); stroke(255,201,170); strokeWeight(0); fill(255,201,170); //ellipse(326+((mouseX)/40),292-((mouseX)/40),12,12); ellipse(341+((mouseX)/40),310-((mouseX)/40),12,12); //cape //cape front / main stroke(227,34,63); strokeWeight(0); fill(227,34,63); triangle(295,264,365,250,378+16*sin(frameCount/8.0),348); //right flow hider stroke(1,147,85); strokeWeight(0); fill(1,147,85); quad(400,400,400,256,365,250,378+16*sin(frameCount/8.0),348); //princeneck stroke(255,180,170); strokeWeight(30); line(326,237,326,236); //Head // Dip modifier + mouseX*0.0125+mouseY*0.01 //princeHead Main ellipseMode(CORNERS); stroke(255,201,170); strokeWeight(0); fill(255,201,170); //fill(255,201,130); //fill(255,232,113); ellipse(366,161+ mouseX*0.0125+mouseY*0.01,287,237+ mouseX*0.0125+mouseY*0.01); //Prince Mouth ellipseMode(CENTER); stroke(0); strokeWeight(0); fill(0); ellipse(313,212-2+mouseX*0.0125+ mouseX*0.0125+mouseY*0.01,28,10); //prince Mouth Cover rectMode(CORNERS); stroke(255,201,170); strokeWeight(0); fill(255,201,170); rect(299,217+ mouseX*0.0125+mouseY*0.01,332,227+ mouseX*0.0125+mouseY*0.01);//295,202,332,211 //Prince Eye L ellipseMode(CORNERS); stroke(0); strokeWeight(0); fill(0); ellipse(296,191+ mouseX*0.0125+mouseY*0.01,305,206+ mouseX*0.0125+mouseY*0.01); //Prince Eye R ellipseMode(CORNERS); stroke(0); strokeWeight(0); fill(0); ellipse(320,191+ mouseX*0.0125+mouseY*0.01,329,206+ mouseX*0.0125+mouseY*0.01); //Prince Eye Brow L ellipseMode(CORNERS); stroke(255,201,170); strokeWeight(0); fill(255,201,170); ellipse(291,186-8+(mouseX*0.02)+ mouseX*0.0125+mouseY*0.01,306,195-8+(mouseX*0.02)+ mouseX*0.0125+mouseY*0.01); //Prince Eye Brow R ellipseMode(CORNERS); stroke(255,201,170); strokeWeight(0); fill(255,201,170); ellipse(319,186-8+(mouseX*0.02)+ mouseX*0.0125+mouseY*0.01,334,195-8+(mouseX*0.02)+ mouseX*0.0125+mouseY*0.01); //prince eye lid bottom rectMode(CORNERS); stroke(255,201,170); strokeWeight(0); fill(255,201,170); rect(295,202-((sin(mouseX*0.01571+1.57)-1)*1.6)+ mouseX*0.0125+mouseY*0.01,332,211+ mouseX*0.0125+mouseY*0.01); //crown //base stroke(232,212,56); strokeWeight(0); fill(232,212,56); quad(327,143+ mouseX*0.0125+mouseY*0.01,322,160+ mouseX*0.0125+mouseY*0.01,359,177+ mouseX*0.0125+mouseY*0.01,370,163+ mouseX*0.0125+mouseY*0.01); //point 1 stroke(232,212,56); strokeWeight(0); fill(232,212,56); triangle(322,160+ mouseX*0.0125+mouseY*0.01,325,127+ mouseX*0.0125+mouseY*0.01,337,160+ mouseX*0.0125+mouseY*0.01); //point 2 stroke(232,212,56); strokeWeight(0); fill(232,212,56); triangle(358,137+ mouseX*0.0125+mouseY*0.01,335,155+ mouseX*0.0125+mouseY*0.01,355,162+ mouseX*0.0125+mouseY*0.01); //point 3 stroke(232,212,56); strokeWeight(0); fill(232,212,56); triangle(379,154+ mouseX*0.0125+mouseY*0.01,359,177+ mouseX*0.0125+mouseY*0.01,357,166+ mouseX*0.0125+mouseY*0.01); //shine stroke(255,249,201,(-2)*(mouseX-313)); strokeWeight(6); line(332+mouseX*0.0515,142+mouseX*0.015+ mouseX*0.0125+mouseY*0.01,331+mouseX*0.024,163+mouseX*0.015+ mouseX*0.0125+mouseY*0.01); //Gap 1 ellipseMode(CENTER); stroke((mouseX/2)*0.75,135,242); strokeWeight(0); fill((mouseX/2)*0.75,135,242); ellipse(338,142+ mouseX*0.0125+mouseY*0.01,19,10); //Gap 2 ellipseMode(CENTER); stroke((mouseX/2)*0.75,135,242); strokeWeight(0); fill((mouseX/2)*0.75,135,242); ellipse(340,144+ mouseX*0.0125+mouseY*0.01,22,10); //Gap 3 ellipseMode(CENTER); stroke((mouseX/2)*0.75,135,242); strokeWeight(0); fill((mouseX/2)*0.75,135,242); ellipse(358,152+ mouseX*0.0125+mouseY*0.01,9,12); //Gap 4 ellipseMode(CENTER); stroke((mouseX/2)*0.75,135,242); strokeWeight(0); fill((mouseX/2)*0.75,135,242); ellipse(364,158+ mouseX*0.0125+mouseY*0.01,15,5); //trim stroke(230,250,243); strokeWeight(6); line(322,160+ mouseX*0.0125+mouseY*0.01,359,177+ mouseX*0.0125+mouseY*0.01); //snake //neck stroke(51,229,94); strokeWeight(28); line((mouseX*0.062)+106,320,(mouseX*0.405)+72+14,mouseY*0.355+142+14); //Tail //main stroke(51,229,94); strokeWeight(10); fill(51,229,94); line(62-(mouseX*0.07)+0.7*sin(frameCount/1.1)*((201-(400-mouseX))/125)+11,375-(mouseX*0.145)+18,72,370); //bulb 1 ellipseMode(CENTER); stroke(234,202,85); //stroke(255,201,170); strokeWeight(0); fill(234,202,85); ellipse(62-(mouseX*0.07)+4.575*sin(frameCount/1.1)*((201-(400-mouseX))/125),375-(mouseX*0.145),9,6); //bulb 2 ellipseMode(CENTER); stroke(234,202,85); //stroke(255,201,170); strokeWeight(0); fill(234,202,85); ellipse(62-(mouseX*0.07)+3.3*sin(frameCount/1.1)*((201-(400-mouseX))/125)+2,375-(mouseX*0.145)+4,13,6.5); //bulb 3 ellipseMode(CENTER); stroke(234,202,85); //stroke(255,201,170); strokeWeight(0); fill(234,202,85); ellipse(62-(mouseX*0.07)+2.0*sin(frameCount/1.1)*((201-(400-mouseX))/125)+5,375-(mouseX*0.145)+9,14,7); //bulb 4 ellipseMode(CENTER); stroke(234,202,85); //stroke(255,201,170); strokeWeight(0); fill(234,202,85); ellipse(62-(mouseX*0.07)+0.7*sin(frameCount/2.5)*((201-(400-mouseX))/125)+8,375-(mouseX*0.145)+14,14,7); //bottom cover 1,147,85 rectMode(CORNERS); stroke(1,147,85); strokeWeight(0); fill(1,147,85); rect(51,382,88,400); //snake top coil //bottomCoilFiller rectMode(CORNERS); stroke(156,242,0); strokeWeight(0); fill(156,242,0); rect(72,334,166,373); //topCoilFiller rectMode(CORNERS); stroke(156,242,0); strokeWeight(0); fill(156,242,0); rect(87,310,155,336); //topcoilMainShadow ellipseMode(CORNERS); stroke(255,201,170); strokeWeight(0); fill(51,229,94); ellipse(81,333,161,356); //leftballshadow ellipseMode(CORNER); //stroke(*); //strokeWeight(*); fill(51,229,94); ellipse(69,313,36,36); //rightballShadow ellipseMode(CORNER); //stroke(*); //strokeWeight(*); fill(51,229,94); ellipse(135,313,36,36); //leftball ellipseMode(CORNER); //stroke(*); //strokeWeight(*); fill(156,242,0); ellipse(69,309,36,36); //rightball ellipseMode(CORNER); //stroke(*); //strokeWeight(*); fill(156,242,0); ellipse(135,309,36,36); //topcoilMain ellipseMode(CORNERS); //stroke(*); //strokeWeight(*); fill(156,242,0); ellipse(81,329,161,352); //snake bottom coil Shadow //leftball ellipseMode(CORNERS); stroke(255,201,170); strokeWeight(0); fill(51,229,94); ellipse(40,343,84,387); //rightball ellipseMode(CORNERS); //stroke(*); //strokeWeight(*); fill(51,229,94); ellipse(156,343,200,387); //middle circle ellipseMode(CORNERS); //stroke(*); //strokeWeight(*); fill(51,229,94); ellipse(51,365,189,396); //snake bottom coil //leftball ellipseMode(CORNERS); stroke(255,201,170); strokeWeight(0); fill(156,242,0); ellipse(40,339,84,383); //rightball ellipseMode(CORNERS); //stroke(*); //strokeWeight(*); fill(156,242,0); ellipse(156,339,200,383); //middle circle ellipseMode(CORNERS); //stroke(*); //strokeWeight(*); fill(156,242,0); ellipse(51,361,189,392); //Head //(mouseX*0.405)+72+14,mouseY*0.355+142+14 //leftmain Shadow ellipseMode(CORNERS); stroke(51,229,94); strokeWeight(0); fill(51,229,94); ellipse((mouseX*0.405)+72+14-28,mouseY*0.355+142+14-28,(mouseX*0.405)+72+14+6,mouseY*0.355+142+14+23+2); //Right Main Shadow ellipseMode(CORNERS); stroke(51,229,94); strokeWeight(0); fill(51,229,94); ellipse((mouseX*0.405)+72+14+28,mouseY*0.355+142+14-28,(mouseX*0.405)+72+14-6,mouseY*0.355+142+14+23+2); //leftmain ellipseMode(CORNERS); stroke(156,242,0); strokeWeight(0); fill(156,242,0); ellipse((mouseX*0.405)+72+14-28,mouseY*0.355+142+14-28,(mouseX*0.405)+72+14+6,mouseY*0.355+142+14+23); //Right Main ellipseMode(CORNERS); stroke(156,242,0); strokeWeight(0); fill(156,242,0); ellipse((mouseX*0.405)+72+14+28,mouseY*0.355+142+14-28,(mouseX*0.405)+72+14-6,mouseY*0.355+142+14+23); //Main Shadow ellipseMode(CORNERS); stroke(51,229,94); strokeWeight(0); fill(51,229,94); ellipse((mouseX*0.405)+72+14-15,mouseY*0.355+142+14-7,(mouseX*0.405)+72+14+15,mouseY*0.355+142+14+54+2); //Main ellipseMode(CORNERS); stroke(156,242,0); strokeWeight(0); fill(156,242,0); ellipse((mouseX*0.405)+72+14-15,mouseY*0.355+142+14-7,(mouseX*0.405)+72+14+15,mouseY*0.355+142+14+54); //NoseL Shadow ellipseMode(CORNERS); stroke(51,229,94); strokeWeight(0); fill(51,229,94); ellipse((mouseX*0.405)+72+14-18,mouseY*0.355+142+14+31,(mouseX*0.405)+72+14,mouseY*0.355+142+14+48+2); //NoseR Shadow ellipseMode(CORNERS); stroke(51,229,94); strokeWeight(0); fill(51,229,94); ellipse((mouseX*0.405)+72+14+18,mouseY*0.355+142+14+31,(mouseX*0.405)+72+14,mouseY*0.355+142+14+48+2); //NoseL ellipseMode(CORNERS); stroke(156,242,0); strokeWeight(0); fill(156,242,0); ellipse((mouseX*0.405)+72+14-18,mouseY*0.355+142+14+31,(mouseX*0.405)+72+14,mouseY*0.355+142+14+48); //NoseR ellipseMode(CORNERS); stroke(156,242,0); strokeWeight(0); fill(156,242,0); ellipse((mouseX*0.405)+72+14+18,mouseY*0.355+142+14+31,(mouseX*0.405)+72+14,mouseY*0.355+142+14+48); //Eye L ellipseMode(CENTER); stroke(156,242,0); strokeWeight(0); fill(0); ellipse((mouseX*0.405)+72+14-13,mouseY*0.355+142+14+3,6,2+mouseX/80+mouseY/(-200)); //Eye R ellipseMode(CENTER); stroke(156,242,0); strokeWeight(0); fill(0); ellipse((mouseX*0.405)+72+14+13,mouseY*0.355+142+14+3,6,2+mouseX/80+mouseY/(-200)); //Nostril ellipseMode(CENTER); stroke(156,242,0); strokeWeight(0); fill(0); ellipse((mouseX*0.405)+72+14-9,mouseY*0.355+142+14+40,6,6); //Nostril ellipseMode(CENTER); stroke(156,242,0); strokeWeight(0); fill(0); ellipse((mouseX*0.405)+72+14+9,mouseY*0.355+142+14+40,6,6); //println(mouseX,mouseY); } void mousePressed(){ //Tongue //stroke(255,121,152); stroke(247,42,90); strokeWeight(3); line((mouseX*0.405)+72+14,mouseY*0.355+142+14+50,(mouseX*0.405)+72+14,mouseY*0.355+142+14+77); }