Your browser does not support the canvas tag.

previous        Show / Hide Source        Download        next
/* 
 First Assinment for Processing
 Chapters 1-3
 By, Rachel Theil
 */

//make the window
void setup() {
  size(400, 400);
}

void draw() {
  rectMode(CORNER);
  //draw backgournd
  background(44, 61, 93);

  //stars***********************************************************************************************************
  fill(255);
  ellipse(40,50,5,5);
  ellipse(60,150,5,5);
  ellipse(360,360,5,5);
  ellipse(226,43,5,5);
  ellipse(294,182,5,5);
  ellipse(21,347,5,5);
  ellipse(340,92,5,5);
  ellipse(164,374,5,5);

  //draw grass
  grass();

  //draw lama
  lama();
  
  //tophat**************************************************************************************************************
  fill(0);
  rectMode(CENTER);
  rect(mouseX,mouseY,30,40);
  //bottom
  rect(mouseX,mouseY+20,50,10);
  //band
  fill(mouseX*2, mouseX/3, mouseX/3);
  rect(mouseX,mouseY+10,30,10);
}

//grass------------------------------------------------------------------------------------------------------------------
void grass() {
  //draw grass
  noStroke();

  //bottom circle
  fill(123, 223, 140);
  ellipse(200, 305, 300, 35);

  stroke(123, 223, 140);
  strokeWeight(5);
  //left grass
  line(310, 280, 300, 300);
  line(320, 285, 305, 300);

  //right grass
  line(90, 285, 100, 300);
  line(75, 280, 90, 300);

  //top circle
  noStroke();
  fill(96, 179, 83);
  ellipse(200, 300, 270, 30);
}

// draw lama------------------------------------------------------------------------------------------------------------
void lama() {
  //body***********************************************************************************************
  fill(255);
  rect(110, 225, 180, 70, 10, 10, 10, 10);

  //left bound******************************************************************************************
  if (mouseX <90){
    quad(90/2 + 40, mouseY/4.5 +60, (90/2)+150, mouseY/4.5 + 60, 220, 230, 110, 230);
    lamasFace(90);
  }
  //right bound***********************************************************************************************
  else if (mouseX > 240){
    quad(240/2 + 40, mouseY/4.5 +60, (240/2)+150, mouseY/4.5 + 60, 220, 230, 110, 230);
    lamasFace(240);
  }
  else{  
  //lamas neck moves******************************************************************************************
  quad(mouseX/2 + 40, mouseY/4.5 +60, (mouseX/2)+150, mouseY/4.5 + 60, 220, 230, 110, 230);
  lamasFace(mouseX);
  }
}
//bind the movment of the lamas neck
void lamasFace(int bound){
  int bo = bound;
  //lamas eyes*************************************************************************************************
  fill(0);
  ellipse( bo/2 + 65, mouseY/4 + 100, 10, 13);
  ellipse( bo/2 + 105, mouseY/4 + 100, 10, 13);

  //glint in eyes
  fill(255);
  ellipse(bo/2 + 67, mouseY/4 + 98, 3, 4);
  ellipse(bo/2 + 107, mouseY/4 + 98, 3, 4);

  //nose
  fill(249, 191, 191);
  triangle(bo/2 + 80, mouseY/4 +110, bo/2 + 90, mouseY/4 + 110, bo/2 + 85, mouseY/4 + 115); 
  fill(0);

  //mouth
  quad( bo/2 + 95, mouseY/4 + 120, bo/2 + 85, mouseY/4 + 125, bo/2 + 85, mouseY/4 + 127, bo/2 +95, mouseY/4+ 122);  
  quad( bo/2 + 75, mouseY/4 + 120, bo/2 + 85, mouseY/4 + 125, bo/2 + 85, mouseY/4 + 127, bo/2 +75, mouseY/4+ 122);


  //front leg***************************************************************************************************
  fill(240);
  ellipse(170, 275, 40, 40);

  fill(255);
  rect(150, 290, 30, 13, 10, 10, 10, 10); 

  fill(255);
  ellipse(175, 275, 40, 40);

  //back leg***************************************************************************************************
  fill(240);
  ellipse(275, 275, 40, 40);

  fill(255);
  ellipse(280, 275, 40, 40);

  rect(255, 290, 30, 13, 10, 10, 10, 10); 

  //ears*******************************************************************************************************
  rect(bo/2 + 55, mouseY/4 + 35, 15, 30, 10, 10, 10, 10);
  ellipse(bo/2 + 55, mouseY/4 + 45, 10, 10);
  ellipse(bo/2 + 55, mouseY/4 + 52, 5, 5);

  rect(bo/2 + 95, mouseY/4 + 35, 15, 30, 10, 10, 10, 10);
  ellipse(bo/2 + 110, mouseY/4 + 45, 10, 10);
  ellipse(bo/2 + 110, mouseY/4 + 52, 5, 5);
  
  //tail********************************************************************************************************
  rect(265, 200, 20, 40, 10, 10, 10, 10);
  rect(270, 210, 20, 40, 10, 10, 10, 10);

  //tie**********************************************************************************************************
  fill(mouseX*2 - 40, mouseX/3 -50, mouseX/3 -40);
  triangle(140, 240, 125, 230, 125, 250);
  triangle(140, 240, 155, 230, 155, 250);
  fill(mouseX*2, mouseX/3, mouseX/3);
  ellipse(140, 240, 10, 10);
}