/*
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);
}