Your browser does not support the canvas tag.

previous        Show / Hide Source        Download        next
/* MORGAN LYN
   ASSIGNMENT 1
   INTERACTIVE DRAWING
   
   A man wants to pet his cat however, his cat does not like him
   The man's arms follow the cursor. When you reach out for the cat it moves away*/

void setup() {
  size(400, 400);
}

void draw() {

  //setting the colour of the background
  background(209, 225, 226);

  //The cursor is not visble when interacting with the drawing
  noCursor();

  frameRate(45);

  //floor
  noStroke(); 
  fill(220, 206, 192);
  rectMode(CORNERS);
  rect(0, 320, 400, 400);

  //MAN//

  //Man's head
  noStroke(); 
  fill(249, 192, 155); //skin tone
  rectMode(CORNER);
  rect(50, 100, 40, 50);

  //Man's eyes
  fill(112, 83, 69);
  rect(60, 120, 5, 5);
  rect(75, 120, 5, 5);
  
  //Man's mouth
  strokeWeight(1.5);
  noFill();
  stroke(112, 83, 69); //brown
  curve(60, 136, 60, 136, 75, 135, 75, 261);

  //Man's hair
  noStroke(); 
  fill(193, 130, 101); //brown
  triangle(50, 100, 70, 120, 70, 100);
  triangle(58, 100, 78, 120, 90, 100);

  //Man's neck
  fill(249, 192, 155); //skin tone
  rect(65, 150, 10, 10);

  //Man's pants
  fill(102, 111, 132); // blue
  noStroke(); 
  ellipseMode(CORNERS);
  ellipse(45, 220, 95, 265);

  //Man's body
  fill(0, 0, 0); //black
  rect(45, 160, 50, 80);

  //Man's legs
  fill(102, 111, 132); // blue
  rect(45, 240, 10, 130);
  rect(85, 240, 10, 130);

  //Man's arms
  stroke(249, 192, 155);
  strokeWeight(7.5);
  //Arm's move with the cursor to try and catch the cat
  line(45, 163, mouseX-25, mouseY+20);
  line(95, 163, mouseX+25, mouseY+20);

  //CAT//

  //Cat moves away when his owners arms are near

  //Cat's body
  noStroke();
  fill(104, 108, 121); //grey
  rect(mouseX+55-(mouseX-pmouseX), 310, 80, 35);

  //Cat's head
  rect(mouseX+115-(mouseX-pmouseX), 280, 30, 30);

  //Cat ears
  triangle(mouseX+115-(mouseX-pmouseX), 280, mouseX+130-(mouseX-pmouseX), 280, mouseX+122.5-(mouseX-pmouseX), 267);
  triangle(mouseX+130-(mouseX-pmouseX), 280, mouseX+145-(mouseX-pmouseX), 280, mouseX+137.5-(mouseX-pmouseX), 267);

  //Cat's nose
  fill(255, 194, 194);
  triangle(mouseX+127-(mouseX-pmouseX), 295, mouseX+133-(mouseX-pmouseX), 295, mouseX+130-(mouseX-pmouseX), 299);

  //Cat's legs (front)
  fill(104, 108, 121); //grey
  rect(mouseX+55-(mouseX-pmouseX), 330, 10, 40);
  rect(mouseX+125-(mouseX-pmouseX), 330, 10, 40);

  //Cat's legs (back)
  fill(74, 78, 94); //dark grey
  rect(mouseX+65-(mouseX-pmouseX), 345, 5, 20);
  rect(mouseX+120-(mouseX-pmouseX), 345, 5, 20);
  
  //Cat's whiskers
  strokeWeight(1);
  stroke(74, 78, 94); //dark grey
  //left whiskers
  line(mouseX+110-(mouseX-pmouseX), 290, mouseX+120-(mouseX-pmouseX), 293);
  line(mouseX+110-(mouseX-pmouseX), 297, mouseX+120-(mouseX-pmouseX), 297);
  //right whiskers
  line(mouseX+140-(mouseX-pmouseX), 297, mouseX+150-(mouseX-pmouseX), 297);
  line(mouseX+140-(mouseX-pmouseX), 293, mouseX+150-(mouseX-pmouseX), 290);
  
  //Cat's eyes
  noStroke();
  fill(71, 72, 86); //dark grey
  rect(mouseX+122-(mouseX-pmouseX), 287, 5, 5);
  rect(mouseX+133-(mouseX-pmouseX), 287, 5, 5);
  
  //Cat'mouth
  strokeWeight(1.5);
  stroke(71, 72, 86); //dark grey
  line(mouseX+125-(mouseX-pmouseX), 302, mouseX+130-(mouseX-pmouseX), 300);
  line(mouseX+130-(mouseX-pmouseX), 300, mouseX+135-(mouseX-pmouseX), 302);

  //Cat tail
  stroke(74, 78, 94); //dark grey
  strokeWeight(7.5);
  line(mouseX+55-(mouseX-pmouseX), 310, mouseX+50-(mouseX-pmouseX), 290);
}