class Button { public static final int MODE_TRIGGER = 0; public static final int MODE_TOGGLE = 1; private int MODE = MODE_TRIGGER; private boolean ON = false; private boolean lastON = false; private float x=0, y=0; private float r=0; private color c; private boolean over = false; private boolean lastMousePressed = false; Button() { } public void setScreenPos(float _x, float _y) { x = _x; y = _y; } public void setScreenSize(float _r) { r = _r; } public void setScreenColor(color _c) { c = _c; } public boolean buttonOnFlankEvent() { return (!lastON&&ON); } public boolean buttonOffFlankEvent() { return (lastON&&!ON); } public void update() { lastON = ON; if (MODE==MODE_TRIGGER) { if (keyPressed&&key==' ') { ON = true; } else { ON = false; } } else if (MODE==MODE_TOGGLE) { ON = !ON; } } public void draw() { ellipseMode(CENTER_RADIUS); stroke(0,0,0); fill(red(c),green(c),blue(c),100+(ON?150:0)); ellipse(x,y,r,r); if (over) { noFill(); ellipse(x,y,r+0.5,r+0.5); } } private boolean mouseDownEvent() { return (!lastMousePressed&&mousePressed); } private boolean mouseUpEvent() { return (lastMousePressed&&!mousePressed); } }