Hi, I need to make a clock for a project. The buttons on the clock have to come from a button class, which I have made. However, only the last button in my code is clickable. Everything works using the keyboard, but not the mouse. I hope you can help me, since none of my teachers are available for questions. Thanks!
**Main:**
boolean pressedLeft=false; //setting up boolean to know if the mouse is being clicked or not
boolean turnOnAlarm=false;
color buttoncolor;
Button but, but1, but2, but3, but4;
int alarmh=00;
int alarmm=00;
int alarms=00;
Minim minim; //minim audioplayer
AudioPlayer player;
void setup()
{
size(600, 400);
textAlign(CENTER, CENTER);
textSize(72);
minim = new Minim(this); //asking minim to use elements from the folder
player = minim.loadFile("Old-fashioned-alarm-clock.mp3");
buttoncolor = color(51, 153, 255);
but = new Button(50, 330, 50, buttoncolor);
but1 = new Button(160, 330, 50, buttoncolor);
but2 = new Button(275, 330, 50, buttoncolor);
but3 = new Button(390, 330, 50, buttoncolor);
buttoncolor = color(255, 255, 51);
but4 = new Button(50, 175, 50, buttoncolor);
}
void mousePressed()
{
if (but.pressed())
{
if (turnOnAlarm==false)
{turnOnAlarm=true;}
else if (turnOnAlarm==true)
{turnOnAlarm=false;}
} else if (but1.pressed())
{
changeAlarmNumberH();
} else if (but2.pressed())
{
changeAlarmNumberM();
} else if (but3.pressed())
{
changeAlarmNumberS();
} else if (but4.pressed())
{
turnOnLights();
}
}
void keyPressed()
{
if (keyCode==ENTER)
{
if (turnOnAlarm==false)
{turnOnAlarm=true;}
else if (turnOnAlarm==true)
{turnOnAlarm=false;}
} else if (keyCode==LEFT)
{
changeAlarmNumberH();
} else if (keyCode==DOWN)
{
changeAlarmNumberM();
} else if (keyCode==RIGHT)
{
changeAlarmNumberS();
} else if (keyCode==UP)
{
turnOnLights();
}
}
void changeAlarmNumberH()
{
alarmh++;
if (alarmh>23)
{
alarmh = 0;
}
}
void changeAlarmNumberM()
{
alarmm++;
if (alarmm>60)
{
alarmm = 0;
}
}
void changeAlarmNumberS()
{
alarms++;
if (alarms>60)
{
alarms = 0;
}
}
void turnOnLights()
{
if (millis() <= 5000) {
background(255);
} else {
background(0);
}
}
void draw() //drawing the clock
{
background(0);
String nowHour = nf(hour(), 2); //limits amount of digits
String nowMinute = nf(minute(), 2);
String nowSecond = nf(second(), 2);
String alarmHour = nf(alarmh, 2);
String alarmMinute = nf(alarmm, 2);
String alarmSecond = nf(alarms, 2);
fill(0, 129, 255);
text(nowHour + ":" + nowMinute + ":" + nowSecond, (width*0.5), (height*0.3)); //running clock
fill(51, 153, 255);
text(alarmHour + ":" + alarmMinute + ":" + alarmSecond, (width*0.5), (height*0.7)); //alarm
but.display();
but1.display();
but2.display();
but3.display();
but4.display();
if (turnOnAlarm==true)
{
if (hour()==alarmh)
{
if (minute()==alarmm)
{
if (second()==alarms)
{
player.play();
{
}
}
}
}
}
}
**Button class:**
class Button
{
int x, y;
int size;
color buttoncolor;
boolean pressed = false;
Button(int ix, int iy, int isize, color icolor)
{
x = ix;
y = iy;
size = isize;
buttoncolor = icolor;
}
boolean pressed()
{
if (mouseX >= x && mouseX <= x+width &&
mouseY >= y && mouseY <= y+height) {
return true;
} else {
return false;
}
}
void display()
{
fill(buttoncolor);
rect(x, y, size, size);
}
}