กันยายน 06, 2558

Lab3_battery

int posX=35, posY=30;
float resize=150;      //changeable
float charge=100;
boolean charging=false;
void draw() {
  size(350,250);
  background(130,120,240); //light_blue
  batteryTank();
  positive();
  negative();
  if(charging){
    charge++;
    draw_lightning();
  }
  else if(charge<=20) draw_exclamation();
  if(charge>=100){
    charge=100;
    charging=false;
  }
}
void batteryTank(){
  float chargeW;
  fill(255);
  textSize(resize/10);
  text("Battery: "+charge+"%",posX+resize/100*25*2.25,posY+resize/100*125);
  //tank
  strokeWeight(3);
  fill(130); //gray
  rect(posX,posY,resize/100*80*2.25,resize/100*100,resize/100*5*2.25);
  rect(posX+resize/100*80*2.25,posY+resize/100*30,resize/100*3*2.25,resize/100*40);
  fill(150);
  rect(posX+resize/100*2.5*2.25,posY,resize/100*75*2.25,resize,resize/100*2*2.25);
  //power
  chargeW=charge/100*resize/100*75*2.25;
  fill(#38E82C); //green
  rect(posX+resize/100*2.5*2.25,posY,chargeW,resize,resize/100*2*2.25);
}
void positive(){
  noStroke();
  fill(#DE1F1F); //red
  rect(posX+1.75*resize,posY+resize,resize/10,resize*0.4);
  rect(posX-75*resize/500+1.75*resize,posY+75*resize/500+resize,resize*0.4,resize/10);
  stroke(0);
}
void negative(){
  noStroke();
  fill(#1752CE); //blue
  rect(posX-75*resize/500+0.1*resize,posY+75*resize/500+resize,resize*0.4,resize/10);
  stroke(0);
}
void draw_lightning(){
  noStroke();
  fill(#FFE000);
  beginShape();
  vertex(posX+resize*0.9,posY+resize/2-resize*0.35); //posX+resize*0.9 = 105 ,,, posY+resize/2
  vertex(posX+resize*0.9,posY+resize/2-resize*0.07);
  vertex(posX+resize*0.9+resize/10,posY+resize/2-resize*0.07);
  vertex(posX+resize*0.9,posY+resize/2+resize*0.35);
  vertex(posX+resize*0.9,posY+resize/2+resize*0.07);
  vertex(posX+resize*0.9-resize/10,posY+resize/2+resize*0.07);
  endShape();
  stroke(0);
}
void draw_exclamation(){
  noStroke();
  fill(#FF0000);
  if(frameCount%40>20){
    quad(posX+resize-resize/6,posY+resize/2-resize/5,posX+resize-resize/30,posY+resize/2-resize/5,
      posX+resize-resize/15,posY+resize/2+resize/15,posX+resize-resize/7.5,posY+resize/2+resize/15);
    rect(posX+resize-resize/7.5,posY+resize/2+resize/7.5,resize/15,resize/15);
  }
  stroke(0);
}
void mouseMoved(){
  if(!charging){
    charge-=0.5;
    if(charge<=0) charge=0;
  }
}
void mouseClicked(){
  charging=true;
}

ไม่มีความคิดเห็น:

แสดงความคิดเห็น