here is my version - mainly ordering the order of functions
int state = 0;
boolean testSketch = true;//false;//true;
int x1, y1, w1, h1; //Button oben links
int x2, y2, w2, h2; //Button oben rechts
int x3, y3, w3, h3; //Button unten links
int x4, y4, w4, h4; //Button unten rechts
int x5, y5, w5, h5; // Button zurück
/* // hard coded
int x1=100, y1=100, w1=250, h1=250; //Button oben links
int x2=1570, y2=100, w2=250, h2=250; //Button oben rechts
int x3=100, y3=730, w3=250, h3=250; //Button unten links
int x4=1570, y4=730, w4=250, h4=250; //Button unten rechts
int x5=80, y5=870, w5=250, h5=100; // Button zurück
*/
// ---------------------------------------------------------------------------
// processing Core Functions
void settings() {
if ( testSketch )
size(600, 400);
else
fullScreen();
}
void setup() {
setup_buttons();
fill(0, 0, 200);
strokeWeight(5);
textSize(20);
}
void draw() {
background(200, 100, 200);
if ( state == 0 ) draw_4_buttons();
else if ( state == 1 ) draw_back_button_and_some_text1();
else if ( state == 2 ) draw_back_button_and_some_text2();
else if ( state == 3 ) draw_back_button_and_some_text3();
else if ( state == 4 ) draw_back_button_and_some_text4();
}
// ---------------------------------------------------------------------------
// belonging to setup()
void setup_buttons() {
x1 = width/10;
y1 = height/10;
w1 = 2*x1;
h1 = 2*y1;
x2 = width-x1-w1;
y2 = y1;
w2 = w1;
h2 = h1;
x3 = x1;
y3 = height-y1-h1;
w3 = w1;
h3 = h1;
x4 = x2;
y4 = y3;
w4 = w1;
h4 = h1;
x5 = x3;
y5 = y3;
w5 = w1;
h5 = h1/2;
}
// ---------------------------------------------------------------------------
// belonging to draw()
void draw_4_buttons() {
text("some text page 0 ", 120, height/2);
//_______ stat 0 only
if ( over(x1, y1, w1, h1) )
stroke(200, 0, 0);
else stroke(0);
rect(x1, y1, w1, h1);
pushStyle();
fill(0);
text("1", x1+33, y1+33);
popStyle();
if ( over(x2, y2, w2, h2) )
stroke(200, 0, 0);
else stroke(0);
rect(x2, y2, w2, h2);
pushStyle();
fill(0);
text("2", x2+33, y2+33);
popStyle();
if ( over(x3, y3, w3, h3) )
stroke(200, 0, 0);
else stroke(0);
rect(x3, y3, w3, h3);
pushStyle();
fill(0);
text("3", x3+33, y3+33);
popStyle();
if ( over(x4, y4, w4, h4) )
stroke(200, 0, 0);
else stroke(0);
rect(x4, y4, w4, h4);
pushStyle();
fill(0);
text("4", x4+33, y4+33);
popStyle();
}
void draw_back_button_and_some_text1() {
text("some text page1 ", 20, 20);
draw_zurueck_button();
}
void draw_back_button_and_some_text2() {
text("some text page2 ", 20, 20);
draw_zurueck_button();
}
void draw_back_button_and_some_text3() {
text("some text page3 ", 20, 20);
draw_zurueck_button();
}
void draw_back_button_and_some_text4() {
text("some text page4 ", 20, 20);
draw_zurueck_button();
}
void draw_zurueck_button() {
//_ state 1,2,3
if ( over(x5, y5, w5, h5) )
stroke(200, 0, 0);
else stroke(0);
rect(x5, y5, w5, h5);
pushStyle();
fill(255);
text("zurück", x5+33, y5+22);
popStyle();
}
// -------------------------------------------------------------
// Inputs
void mousePressed() {
if ( state == 0 ) {
if ( over(x1, y1, w1, h1) ) state = 1;
else if ( over(x2, y2, w2, h2) ) state = 2;
else if ( over(x3, y3, w3, h3) ) state = 3;
else if ( over(x4, y4, w4, h4) ) state = 4;
} else {
if ( over(x5, y5, w5, h5) ) state = 0;
}
}
// -------------------------------------------------------------
// Tools
boolean over(int x, int y, int w, int h) {
return ( mouseX > x & mouseX < x + w &&
mouseY > y & mouseY < y + h ) ;
}//
//