Your browser does not support the canvas tag.

previous        Show / Hide Source        Download        next
//////////////Ariana Tomcsak//////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////
//////ASSIGNMENT 2  -  INTERACTIVE Toy////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////
///////////LIGHTS - OFF///////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////
////////////////LET'S PLAY!///////////////////////////////////////////////////////
////Use the fly (cursor) to hover above the light switch and turn the lights off//
////Click the mouse to hear the fly 'buzz'////////////////////////////////////////


///////VARIABLES//////////

float leftbulbX;
float leftbulbY;

float rightbulbX;
float rightbulbY; 

float backbulbX;
float backbulbY; 

int bulbHeight;
int bulbWidth;



///////SETUP//////////////

void setup() {
  size(400, 400);
  ellipseMode(CENTER);
  rectMode(CENTER); 

  leftbulbX = 65;   
  leftbulbY = 240; 

  rightbulbX = 185;
  rightbulbY = 250;

  backbulbX = 0;
  backbulbY = 140;

  bulbHeight = 20;
  bulbWidth = 400;
}



///////DRAW//////////////

void draw() {
  background (255);
  noStroke();

  ////Draw background////

  drawBackgroundGradient();

  //*loop back bulb across x-axis////
  backbulbX = - 30;
  while (backbulbX < bulbWidth) {
    backbulbX = backbulbX + 66 ;
    drawBackBulb();
  }


  ////Draw foreground////

  drawOnOffSwitch();
  drawLeftBulb();
  drawRightBulb();
  drawFly();

  if (mouseX > 325 && mouseX < 335 && mouseY < 258 && mouseY > 222) {
    background (0);
  }
}


////Mouse Press Fun////
void mousePressed() {

  //*make the bug talk//*
  println("BZZZZZT");
}



///////FUNCTION DEFINITIONS///////


void drawBackgroundGradient() {

  //////Draw background gradient////
  //*background rect 1//*
  fill(168, 103, 90, 200);
  rect(bulbWidth/2, bulbHeight, bulbWidth, bulbHeight*2);
  //*background rect 2//*
  fill(189, 115, 101, 200);
  rect(bulbWidth/2, bulbHeight*3, bulbWidth, bulbHeight*2);
  //*background rect 3//*
  fill(229, 140, 123, 200);
  rect(bulbWidth/2, bulbHeight*5, bulbWidth, bulbHeight*2);
  //*background rect 4//*
  fill(255, 156, 137, 200);
  rect(bulbWidth/2, bulbHeight*7, bulbWidth, bulbHeight*2);
  //*background rect 5//*
  fill(229, 140, 123, 200);
  rect(bulbWidth/2, bulbHeight*9, bulbWidth, bulbHeight*2);
  //*background rect 6//*
  fill(189, 115, 101, 200);
  rect(bulbWidth/2, bulbHeight*11, bulbWidth, bulbHeight*2);
  //*background rect 7//*
  fill(168, 103, 90, 200);
  rect(bulbWidth/2, bulbHeight*13, bulbWidth, bulbHeight*2);
  //*background rect 8//*
  fill(145, 89, 78, 200);
  rect(bulbWidth/2, bulbHeight*15, bulbWidth, bulbHeight*2);
  //*background rect 9//*
  fill(127, 78, 68, 200);
  rect(bulbWidth/2, bulbHeight*17, bulbWidth, bulbHeight*2);
  //*background rect 10//*
  fill(105, 64, 56, 200);
  rect(bulbWidth/2, bulbHeight*19, bulbWidth, bulbHeight*2);
  //*background rect 11//*
  fill(89, 55, 48, 200);
  rect(bulbWidth/2, bulbHeight*21, bulbWidth, bulbHeight*2);
}


void drawBackBulb() {

  //Draw & color light bulb & light rays in the background////
  //**white ellipse behind bulb and rays for transparency problem//*
  fill(255, 140); 
  ellipse(backbulbX, backbulbY, 15, 15);
  //*ray1 in background & color//*
  fill(186, 174, 121, random(50, 100)); 
  ellipse(backbulbX, backbulbY, 15, 15);
  //*light source in background & color//*
  fill(194, 181, 126, random(150, 200));
  ellipse(backbulbX, backbulbY, 10, 10); 
  //*ray3 in background & color//*
  fill(255, 251, 207, random(50, 100));
  ellipse(backbulbX, backbulbY, 50, 50);
  //*ray2 in background & color//*
  fill(186, 174, 121, random(0, 50));
  ellipse(backbulbX, backbulbY, 30, 30);
}


void drawOnOffSwitch() {

  ////Draw light on/off chord & color////
  //*chord//*
  strokeWeight(2);
  stroke(142, 150, 100);
  fill(172, 181, 120);
  rect(330, 100, 5, 250);  
  //*pull handle//*
  strokeWeight(2);
  stroke(143, 135, 114);
  fill(168, 160, 135);
  rect(330, 240, 10, 35);
}


void drawLeftBulb2() {

  ////Draw & color left bulb, rays, chord & attachments////

  //*chord & color//*
  strokeWeight(2);
  stroke(184, 145, 96);
  fill(247, 195, 129);
  rect(leftbulbX, 90, 5, 200);

  ///Attachments & color///
  //*big bottom & color//* 
  stroke(153, 153, 149);
  fill(186, 185, 180);
  ellipse(leftbulbX, 200, 45, 15); 
  //*medium bottom & color//* 
  stroke(133, 133, 129);
  fill(166, 165, 161);
  ellipse(leftbulbX, 190, 35, 15);
  //*small bottom & collor//* 
  stroke(122, 122, 119);
  fill(150, 150, 146);
  ellipse(leftbulbX, 180, 25, 12);

  ///Left bulb rays & color///
  //*bulb ray 3 & color//*
  noStroke();
  fill(255, 251, 88, random(20, 10));
  ellipse(leftbulbX, leftbulbY, 180, 180);
  //*bulb ray 2 & color//*
  noStroke();
  fill(255, 251, 88, random(20, 40));
  ellipse(leftbulbX, leftbulbY, 140, 140);
  //*bulb ray 1 & color//*
  noStroke();
  fill(255, 251, 88, random(30, 45));
  ellipse(leftbulbX, leftbulbY, 100, 100);
}

void drawLeftBulb() {

  ////Draw & color left bulb, rays, chord & attachments////

  //*chord & color//*
  strokeWeight(2);
  stroke(184, 145, 96);
  fill(247, 195, 129);
  rect(leftbulbX, 90, 5, 200);

  ///Left bulb & color///
  //*white ellipse behind bulb for transparency problem//*
  noStroke();
  fill(255, 200);
  ellipse(leftbulbX, leftbulbY, 80, 80);
  drawBulbInsideSmallLeft();
  //*bulb & color//*
  noStroke();
  fill(255, 251, 88, 100);
  ellipse(leftbulbX, leftbulbY, 80, 80);

  ///Attachments & color///
  //*big bottom & color//* 
  stroke(153, 153, 149);
  fill(186, 185, 180);
  ellipse(leftbulbX, 200, 45, 15); 
  //*medium bottom & color//* 
  stroke(133, 133, 129);
  fill(166, 165, 161);
  ellipse(leftbulbX, 190, 35, 15);
  //*small bottom & collor//* 
  stroke(122, 122, 119);
  fill(150, 150, 146);
  ellipse(leftbulbX, 180, 25, 12);

  ///Left bulb rays & color///
  //*bulb ray 3 & color//*
  noStroke();
  fill(255, 251, 88, random(20, 10));
  ellipse(leftbulbX, leftbulbY, 180, 180);
  //*bulb ray 2 & color//*
  noStroke();
  fill(255, 251, 88, random(20, 40));
  ellipse(leftbulbX, leftbulbY, 140, 140);
  //*bulb ray 1 & color//*
  noStroke();
  fill(255, 251, 88, random(30, 45));
  ellipse(leftbulbX, leftbulbY, 100, 100);
}


void drawRightBulb() {

  ////Draw & color right bulb, rays, chord & attachments////

  //*chord & color//*
  stroke(112, 133, 122);
  fill(155, 184, 169);
  rect(rightbulbX, 90, 5, 185);

  ///Right bulb & color///
  //*white rect behind bulb for transparency problem//*
  noStroke();
  fill(255, 200);
  rect(rightbulbX, rightbulbY, 40, 140, 20);
  drawBulbInsideLongRight();
  //*bulb & color//*
  noStroke();
  fill(255, 251, 88, 100);
  rect(rightbulbX, rightbulbY, 40, 140, 20);

  ///Attachments & color///
  //*big bottom * color//* 
  stroke(153, 153, 149);
  fill(186, 185, 180);
  ellipse(rightbulbX, 180, 45, 15);
  //*medium bottom & color//* 
  stroke(133, 133, 129);
  fill(166, 165, 161);
  ellipse(rightbulbX, 170, 35, 15);
  //*small bottom & color//* 
  stroke(122, 122, 119);
  fill(150, 150, 146);
  ellipse(rightbulbX, 160, 25, 12);

  ///Right bulb rays & color///
  //*bulb ray 3 & color//*
  noStroke();
  fill(255, 251, 88, random(20, 10));
  ellipse(rightbulbX, rightbulbY, 140, 240);
  //*bulb ray 2 & color//*
  noStroke();
  fill(255, 251, 88, random(20, 40));
  ellipse(rightbulbX, rightbulbY, 100, 200);
  //*bulb ray 1 & color//*
  noStroke();
  fill(255, 251, 88, random(30, 45));
  ellipse(rightbulbX, rightbulbY, 60, 160);
}


void drawFly() {

  ////////////////////////////////////////////////////////////////////////////
  /////////Fly used from myself from previous assignment (assignment 1 )//////////
  ////////////////////////////////////////////////////////////////////////////
  ////Draw fly/cursor////

  //*set noStroke//*
  noStroke();

  //*fly wing back//*
  fill(255, random(80, 160));
  ellipse(mouseX, mouseY - 5, 7, 10);
  //*fly body//*
  fill(0);
  ellipse(mouseX, mouseY, 10, 10);
  //*fly wing front//*
  fill(255, random(100, 200));
  ellipse(mouseX + 3, mouseY - 5, 7, 10);
}


////Assigned separately to ease bulb code////

void drawBulbInsideSmallLeft() {
  //*inside small bulb shine & color//*
  noFill();
  strokeWeight(10);
  stroke(255, 207, 150, random(30, 230));
  line(62.5, 197, 50, 240);
  ellipse(49, 242, 6, 6); 
  line(52, 243, 63, 250);
  ellipse(67, 250, 8, 8);
  line(72, 250, 80, 245);
  ellipse(83, 243, 5.5, 5.5);
  line(83, 240, 67.5, 197);
  //*inside small bulb & color//*
  strokeWeight(2);
  stroke(138, 119, 82);
  line(62.5, 197, 50, 240);
  ellipse(49, 242, 6, 6); 
  line(52, 243, 63, 250);
  ellipse(67, 250, 8, 8);
  line(72, 250, 80, 245);
  ellipse(83, 243, 5.5, 5.5);
  line(83, 240, 67.5, 197);
}

void drawBulbInsideLongRight() {
  //*inside long bulb shine & color//*
  noFill();
  strokeWeight(10);
  stroke(255, 207, 150, random(0, 230));
  line(182.5, 180, 177, 290);
  ellipse(176, 292, 7, 7); 
  line(179, 292, 183, 295);
  ellipse(186, 298, 5.5, 5.5);
  line(188, 296, 193, 290);
  ellipse(194, 288, 4, 4);
  line(194, 285, 187.5, 180);
  //*inside long bulb & color//*
  strokeWeight(2);
  stroke(138, 119, 82);
  line(182.5, 180, 177, 289);
  ellipse(176, 292, 7, 7); 
  line(179, 292, 183, 295);
  ellipse(186, 298, 5.5, 5.5);
  line(188, 296, 193, 290);
  ellipse(194, 288, 4, 4);
  line(194, 285, 187.5, 180);
}