Your browser does not support the canvas tag.

previous        Show / Hide Source        Download        next
//vars for button
boolean button =false;

int x= 0;
int y= 0;
int w= 400;
int h= 400;

//turn red & blue
float r = 255;
float g = 0;
float b = 255;

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

void draw() { 
  drawBackground();
  //button
  noStroke(); 
  fill(0, 0, 0, 1); 
  rect(x, y, w, h);
}

void drawBackground() { //draws rectangular background with gradient using while loop
  background(200);
  noStroke();
  float w=width/2;
  float h=height*2;
  int gColor=0;
  while (w>0) {
    noStroke();
    fill(gColor);
    rect(300, 0, w, h);
    w=w-10; //sub. units from width of grads.
    gColor=gColor+2; //changes color
  }

  //half way mark
  stroke (255); 
  line (width/2, 0, width/2, height); 

  //lightsaber hilt pt.1
  stroke(0); 
  fill(149, 143, 143); 
  rectMode(CENTER); 
  //200,300
  rect(mouseX, mouseY+25, 15, 20); 

  //lightsaber hilt pt.2
  stroke(0); 
  fill(149, 143, 143); 
  rectMode(CENTER); 
  rect(mouseX, mouseY, 20, 40); 

  //lightsaber hilt pt.3
  stroke(0); 
  fill(111, 107, 107); 
  rectMode(CENTER); 
  rect(mouseX, mouseY-38, 18, 36); 

  //lightsaber hilt pt.4
  stroke(0); 
  fill(111, 107, 107); 
  rectMode(CENTER); 
  rect(mouseX, mouseY-61, 12, 10); 

  // lightsaber hilt pt.5
  stroke(0); 
  fill(111, 107, 107); 
  rectMode(CENTER); 
  rect(mouseX, mouseY-65, 16, 2); 

  // lightsaber hilt pt.6
  stroke(0); 
  fill(178, 125, 25); 
  rectMode(CENTER); 
  rect(mouseX, mouseY-68.75, 14, 7); 

  // lightsaber hilt pt.7
  stroke(0); 
  fill(178, 125, 25); 
  rectMode(CENTER); 
  rect(mouseX, mouseY-78, 8, 10); 

  // lightsaber hilt pt.8
  stroke(0); 
  fill(149, 143, 143); 
  rectMode(CENTER); 
  rect(mouseX, mouseY-88, 18, 10); 

  // lightsaber hilt pt.9
  stroke(0); 
  fill(149, 143, 143); 
  rectMode(CENTER); 
  rect(mouseX, mouseY-95, 20, 5); 

  // lightsaber hilt pt.10
  stroke(0); 
  fill(149, 143, 143); 
  rectMode(CENTER); 
  rect(mouseX, mouseY-99, 24, 2); 

  //lightsaber hilt pt.11
  stroke(0); 
  fill(149, 143, 143); 
  rectMode(CENTER); 
  rect(mouseX+15, mouseY-1, 10, 24); 

  //lightsaber hilt pt.12
  stroke(216); 
  fill(149, 143, 143); 
  rectMode(CENTER); 
  rect(mouseX, mouseY-45, 22, 1); 

  //lightsaber hilt pt.13
  stroke(216); 
  fill(149, 143, 143); 
  rectMode(CENTER); 
  rect(mouseX, mouseY-50, 22, 1); 

  //lightsaber hilt pt.14
  stroke(216); 
  fill(149, 143, 143); 
  rectMode(CENTER); 
  rect(mouseX, mouseY-40, 22, 1); 

  //lightsaber hilt pt.15
  stroke(216); 
  fill(149, 143, 143); 
  rectMode(CENTER); 
  rect(mouseX, mouseY-35, 22, 1); 

  //lightsaber hilt pt.16
  stroke(216); 
  fill(149, 143, 143); 
  rectMode(CENTER); 
  rect(mouseX, mouseY-30, 22, 1); 

  //lightsaber hilt pt.17
  stroke(216); 
  fill(149, 143, 143); 
  rectMode(CENTER); 
  rect(mouseX, mouseY-25, 22, 1); 

  //lightsaber hilt pt.18
  stroke(216); 
  fill(149, 143, 143); 
  rectMode(CENTER); 
  rect(mouseX, mouseY-50, 22, 1); 

  // light saber (red)+button on and off
  if (button) {
    noStroke(); 
    fill(r, g, b); 
    rectMode(CENTER); 
    rect(mouseX+1, mouseY-194, 6.5, 190);
  } else {
    noStroke(); 
    fill(r, g, b);
  }

  //light saber tip+button on and off
  if (button) {
    noStroke(); 
    fill(r, g, b); 
    ellipseMode(CENTER); 
    ellipse(mouseX+1, mouseY-290, 6.5, 5);
  } else {
    noStroke(); 
    fill(r, g, b);
  }

  //lightsaber glow(tip)+button on and off
  if (button) {
    noStroke(); 
    fill(r, g, b, 50); 
    ellipseMode(CENTER); 
    ellipse(mouseX+1, mouseY-290, 15, 10);
  } else {
    noStroke(); 
    fill(r, g, b, 50);
  }

  //light saber glow (shaft)+button on and off 
  if (button) {
    noStroke(); 
    fill(r, g, b, 50); 
    rectMode(CENTER); 
    rect(mouseX+1, mouseY-194, 15, 190);
  } else {
    noStroke(); 
    fill(r, g, b, 50);
  }
  // changes colour when you move side to side (jedi,sith)*
  if (mouseX>width/2) {
    r = r + 5; // speed at which the colors change when switching sides
  } else {
    r= r - 3;
  }

  if (mouseX>width/2) {
    b = b - 5;
  } else {
    b = b + 3;
  }
  // dictates the color of the lightsaber when you move side to side
  if (r>255) {// if r is greater than 255 then it'll stay red 
    r=255;
    b=0;
  } else if (r<0) { // if r is less than zero then it will turn blue 
    r=0;
    b=255;
  }
}

//turns button on and off (lightsaber on and off)
void mousePressed() {
  if (mouseX > x && mouseX < x+w && mouseY > y && mouseY < y+h) {
    button = !button;
  }
}