int volumeposY = 110;
int volumeHeight = 380;
int batt_usage;
int posY_change;
int volumeColor = #008B00;
int update = 0;
void setup() {
size(400, 600);
}
void draw() {
int batteryposX = 100, batteryposY = 100;
frameRate(50);
background(0);
battery(batteryposX, batteryposY, 200, 400, 60, 20);
positive(batteryposX+100, batteryposY+50);
negative(batteryposX+100, batteryposY+380);
volumeHeight = volumeHeight - batt_usage;
volumeposY = volumeposY + posY_change;
if ((volumeHeight == 0 && volumeposY == 490) || (volumeHeight == 380 && volumeposY == 110)) {
batt_usage = 0;
posY_change = 0;
}
int percentage = battPercent(volumeHeight, batteryposX+100, batteryposY+200);
if (percentage <= 40) {
volumeColor = #FFCC00;
}
if (percentage <= 20) {
volumeColor = #FF0000;
}
if (percentage >= 40) {
volumeColor = #008B00;
}
if (percentage == 0) {
warning(width/2, 560);
}
}
void warning(int x, int y) {
textAlign(CENTER);
textSize(40);
text("Click to Charge!!", x, y);
}
void mouseClicked() {
if (volumeHeight <= 380 && volumeposY >= 110 && update == 0) {
batt_usage = 2;
posY_change = 2;
update = 1;
} else if (volumeHeight >= 0 && volumeposY <= 490 && update == 1) {
batt_usage = -2;
posY_change = -2;
update = 0;
}
}
void battery(int batteryposX, int batteryposY, int batteryWidth, int batteryHeight, int poleWidth, int poleHeight) {
int volumeposX = 110;
int volumeWidth = 180;
/////BATTERY BODY/////
noFill();
stroke(#FFFFFF);
strokeWeight(5);
rect(batteryposX, batteryposY, batteryWidth, batteryHeight);
fill(255);
rect((batteryposX+(batteryWidth/2))-(poleWidth/2), batteryposY-poleHeight, poleWidth, poleHeight);
/////VOLUME/////
strokeWeight(2);
fill(volumeColor);
rect(volumeposX, volumeposY, volumeWidth, volumeHeight);
}
void positive(int positiveposX, int positiveposY) {
fill(#FF0000);
textAlign(CENTER);
textSize(30);
text("+", positiveposX, positiveposY);
}
void negative(int negativeposX, int negativeposY) {
fill(#FF0000);
textAlign(CENTER);
textSize(30);
text("-", negativeposX, negativeposY);
}
int battPercent(int volumeHeight, int x, int y) {
int batt_percent = 100;
batt_percent = (volumeHeight*100)/380;
textAlign(CENTER);
textSize(40);
fill(#FFFFFF);
text((int)(batt_percent)+"%", x, y);
return batt_percent;
}
ไม่มีความคิดเห็น:
แสดงความคิดเห็น