/****************************************************************** * File Name: Poke * Author: Maddi McDougall * Date: Sept 15, 2015 * Description: An interactive drawing featuring two characters. * The mouse controls the arm of one and so as the 'player' moves * the arm towards the other their expressions change accordingly. * The characters' bodies and the background also move depending * on where the mouse is. ******************************************************************/ void setup(){ //Set Size size(400,400); smooth(); ellipseMode(CENTER); } void draw() { //Create and Colour Background Bands noStroke(); background(176,201,196); //clears background fill(143,171,169); quad(0,120-mouseY/16,400,-70-mouseY/16,400,400,0,400); fill(108,138,139); quad(0,240-mouseY/8,400,60-mouseY/8,400,400,0,400); fill(75,100,109); quad(0,370-mouseY/4,400,190-mouseY/4,400,400,0,400); fill(59,77,91); quad(0,500-mouseY/2.5,400,320-mouseY/2.5,400,510,0,510); /************************************************************ * Businessman ************************************************************/ //Legs noFill(); stroke(14,12,16); strokeWeight(5); bezier(275+mouseX/30,300-mouseY/30,265,350,265,430,280,430); bezier(305+mouseX/30,300-mouseY/30,315,350,315,430,310,430); //Suit rectMode(CENTER); noStroke(); fill(31,29,35); rect(290+mouseX/30,240-mouseY/30,40,140,0,0,300,300); //Neck fill(225,162,146); quad(290+mouseX/30,187-mouseY/30,303+mouseX/30,180-mouseY/30,290+mouseX/30,172-mouseY/30,278+mouseX/30,180-mouseY/30); //Lines on Suit noFill(); stroke(17,15,21); strokeWeight(2.5); line(290+mouseX/30,210-mouseY/30,290+mouseX/30,280-mouseY/30); bezier(290+mouseX/30,280-mouseY/30,290+mouseX/30,290-mouseY/30,290+mouseX/30,300-mouseY/30,273+mouseX/30,300-mouseY/30); bezier(290+mouseX/30,280-mouseY/30,290+mouseX/30,290-mouseY/30,290+mouseX/30,300-mouseY/30,307+mouseX/30,300-mouseY/30); //Collar noStroke(); fill(229,230,237); quad(290+mouseX/30,185-mouseY/30,303+mouseX/30,178-mouseY/30,290+mouseX/30,210-mouseY/30,278+mouseX/30,178-mouseY/30); fill(190,194,208); quad(290+mouseX/30,185-mouseY/30,295+mouseX/30,195-mouseY/30,290+mouseX/30,210-mouseY/30,285+mouseX/30,195-mouseY/30); fill(17,15,21); triangle(276+mouseX/30,170-mouseY/30,290+mouseX/30,210-mouseY/30,272+mouseX/30,190-mouseY/30); triangle(304+mouseX/30,170-mouseY/30,290+mouseX/30,210-mouseY/30,308+mouseX/30,190-mouseY/30); //Head fill(229,181-mouseX/45,156); ellipse(290+mouseX/30,120-mouseY/30,140,120); //Face //Mouth stroke(209,123-mouseX/45,109); strokeWeight(3.5); bezier(280+mouseX/30,(145+mouseX/30)-mouseY/30, 280+mouseX/30,(145-mouseX/30)-mouseY/30, 300+mouseX/30,(145-mouseX/30)-mouseY/30, 300+mouseX/30,(145+mouseX/30)-mouseY/30); //Eyes noStroke(); fill(11,9,8); ellipse(268+mouseX/30,120-mouseY/30,16,40); ellipse(312+mouseX/30,120-mouseY/30,16,40); //Quads to cover top part of ellipes (eyes) noStroke(); fill(229,181-mouseX/45,156); quad(255+mouseX/30,120-mouseY/30,280+mouseX/30,(120+mouseX/60)-mouseY/30,280+mouseX/30,90-mouseY/30,255+mouseX/30,90-mouseY/30); quad(300+mouseX/30,(120+mouseX/60)-mouseY/30,325+mouseX/30,120-mouseY/30,325+mouseX/30,90-mouseY/30,300+mouseX/30,90-mouseY/30); //Eyebrows stroke(11,9,8); line(255+mouseX/30,120-mouseY/30,280+mouseX/30,(120+mouseX/60)-mouseY/30); line(300+mouseX/30,(120+mouseX/60)-mouseY/30,325+mouseX/30,120-mouseY/30); //Hair noStroke(); fill(79,48,36); quad(220+mouseX/30,120-mouseY/30,220+mouseX/30,90-mouseY/30,240+mouseX/30,65-mouseY/30,260+mouseX/30,80-mouseY/30); quad(250+mouseX/30,90-mouseY/30,245+mouseX/30,60-mouseY/30,280+mouseX/30,50-mouseY/30,320+mouseX/30,90-mouseY/30); quad(280+mouseX/30,50-mouseY/30,340+mouseX/30,65-mouseY/30,360+mouseX/30,100-mouseY/30,300+mouseX/30,90-mouseY/30); triangle(350+mouseX/30,90-mouseY/30,360+mouseX/30,100-mouseY/30,360+mouseX/30,120-mouseY/30); //Arms noFill(); stroke(17,15,21); strokeWeight(5); bezier(270+mouseX/30,180-mouseY/30,240+mouseX/30,220-mouseX/7,230+mouseX/30,260-mouseX/16,260+mouseX/30,310-mouseX/14); bezier(310+mouseX/30,180-mouseY/30,340+mouseX/30,220-mouseX/7,350+mouseX/30,260-mouseX/16,320+mouseX/30,310-mouseX/14); /************************************************************ * Pokerman ************************************************************/ //Legs noFill(); stroke(15,15,30); strokeWeight(5); bezier(95+mouseX/20,300+mouseY/20,85+mouseX/20,350,85,430,90,430); bezier(125+mouseX/20,300+mouseY/20,135+mouseX/20,350,135,430,130,430); //Shirt rectMode(CENTER); noStroke(); fill(15,15,30); rect(110+mouseX/20,240+mouseY/20,40,140,0,0,300,300); fill(139,49,48); rect(110+mouseX/20,230+mouseY/20,40,120); ellipse(110+mouseX/20,290+mouseY/20,40,20); //Stripes fill(191); quad(90+mouseX/20,200+mouseY/20,130+mouseX/20,210+mouseY/20,130+mouseX/20,230+mouseY/20,90+mouseX/20,220+mouseY/20); quad(90+mouseX/20,230+mouseY/20,130+mouseX/20,240+mouseY/20,130+mouseX/20,250+mouseY/20,90+mouseX/20,240+mouseY/20); //Neck fill(236,158,133); ellipse(110+mouseX/20,176+mouseY/20,26,24); //Hair Behind Head noStroke(); fill(255,209,160); triangle(50+mouseX/20,90+mouseY/20,50+mouseX/20,126+mouseY/20,20+mouseX/20,125+mouseY/20); triangle(50+mouseX/20,110+mouseY/20,60+mouseX/20,130+mouseY/20,30+mouseX/20,140+mouseY/20); triangle(160+mouseX/20,90+mouseY/20,200+mouseX/20,118+mouseY/20,160+mouseX/20,120+mouseY/20); triangle(160+mouseX/20,90+mouseY/20,190+mouseX/20,135+mouseY/20,160+mouseX/20,140+mouseY/20); //Head fill(243,177,142); ellipse(110+mouseX/20,120+mouseY/20,140,120); //Face //MouthOpen stroke(215,121,102); strokeWeight(2.5); fill(233,141,121); ellipse(110+mouseX/20,(135-mouseX/200)+mouseY/20,26,0+mouseX/7); //Rectangle to cover top half of ellipse (mouth) noStroke(); fill(243,177,142); rect(110+mouseX/20,(110-mouseX/200)+mouseY/20,28,50); //Mouth stroke(215,121,102); strokeWeight(3.5); line(96+mouseX/20,(135-mouseX/200)+mouseY/20,124+mouseX/20,(135-mouseX/200)+mouseY/20); //Eyes noStroke(); fill(11,9,8); ellipse(88+mouseX/20,(120+mouseX/180)+mouseY/20,16,40); ellipse(132+mouseX/20,(120+mouseX/180)+mouseY/20,16,40); fill(255);//whites ellipse(90+mouseX/20,(110+mouseX/180)+mouseY/20,4,8); ellipse(133+mouseX/20,(110+mouseX/180)+mouseY/20,4,8); //Cheeks fill(236,158,133); ellipse((80+mouseX/220)+mouseX/20,(140-mouseX/90)+mouseY/20,32+mouseX/150,32+mouseX/130); ellipse((140-mouseX/220)+mouseX/20,(140-mouseX/90)+mouseY/20,32+mouseX/150,32+mouseX/130); //Hair noStroke(); fill(255,209,160); quad(40+mouseX/20,120+mouseY/20,40+mouseX/20,90+mouseY/20,55+mouseX/20,65+mouseY/20,70+mouseX/20,80+mouseY/20); triangle(64+mouseX/20,80+mouseY/20,70+mouseX/20,110+mouseY/20,40+mouseX/20,100+mouseY/20); triangle(60+mouseX/20,90+mouseY/20,70+mouseX/20,50+mouseY/20,100+mouseX/20,100+mouseY/20); quad(80+mouseX/20,80+mouseY/20,70+mouseX/20,70+mouseY/20,95+mouseX/20,40+mouseY/20,120+mouseX/20,100+mouseY/20); quad(90+mouseX/20,65+mouseY/20,120+mouseX/20,40+mouseY/20,143+mouseX/20,55+mouseY/20,160+mouseX/20,110+mouseY/20); triangle(110+mouseX/20,70+mouseY/20,160+mouseX/20,58+mouseY/20,190+mouseX/20,100+mouseY/20); quad(155+mouseX/20,80+mouseY/20,172+mouseX/20,80+mouseY/20,178+mouseX/20,90+mouseY/20,180+mouseX/20,120+mouseY/20); //Arms noFill(); stroke(74,28,34); strokeWeight(5); bezier(90+mouseX/20,180+mouseY/20, (40+mouseX/20)+mouseX/20,(240-mouseX/40)+mouseY/20, (90+mouseX/20)+mouseX/20,(280+mouseX/15)+mouseY/20, (70-mouseX/40)+mouseX/20,(310-mouseX/10)+mouseY/20); bezier(130+mouseX/20,180+mouseY/20, (180+mouseX/30)+mouseX/20,(240+mouseY/30)+mouseY/20, (130+mouseX/10)+mouseX/20,(280+mouseY/10)+mouseY/20, mouseX,mouseY); //One that moves } //If mouse is pressed show message and create a white circle void mousePressed(){ println("Poke!"); noStroke(); fill(255); ellipse(mouseX,mouseY,10,10); }