> show canvas only <


/* built with Studio Sketchpad: 
 *   https://sketchpad.cc
 * 
 * observe the evolution of this sketch: 
 *   https://studio.sketchpad.cc/sp/pad/view/ro.A-ncfAgxzxg/rev.9882
 * 
 * authors: 
 *   
 *   TrobiiX
 *   
 *   Leander Vollnhals

 * license (unless otherwise specified): 
 *   creative commons attribution-share alike 3.0 license.
 *   https://creativecommons.org/licenses/by-sa/3.0/ 
 */ 



boolean gestartet = false;
boolean gameover = false;
boolean gewonnen = false;
boolean superheld = false;
startclick st = new startclick();
Hindernis1 = new Hindernis();
Player1 = new Player();
Essen1 = new Essen();
int punkte = 1;
int level = 1;
int timer = 400;

void setup() {
    size(600,600);
    otto = loadImage("http://m.memegen.com/utrtju.jpg");
    anna = loadImage("https://previews.123rf.com/images/carmenbobo/carmenbobo1506/carmenbobo150600506/41515293-Rubber-stamp-with-text-try-again-inside-Stock-Vector.jpg");
    levelhoeher = loadImage("http://agach.info/new/lcatalog-level-up-logo-png.awp");
}
void draw(){
    background(0);
    //textSize(100);
    //text(" Hallo Leo", 20, 100);
    if(st.text == true) {
        textSize(26);
        fill(0, 255, 255);
        text("Catch the green square to win the game", 50, 50);
        text("Controle the blue square with", 50, 150);
        text("UP, DOWN, LEFT, RIGHT", 50, 250);
        text("Don´t crash with the red square", 50, 350);
        text("Click mouse to play!", 50, 450);
    }
    if (gestartet == true) {
        Essen1.update();
        Player1.update();
        Hindernis1.update();
        st.text = false;
        textSize(32);
        text("Punkte:", 440, 50);
        text(punkte, 550, 50);
        text("Level:", 40, 50);
        text(level, 150, 50);
        text(timer, 300, 50);
        timer--;     
    }
    if (Player1.x <= 0 || Player1.y <= 0 ||  Player1.x  + Player1.breite >= 600 || Player1.y +  Player1.hoehe >=  600) {
        gameover = true;
    }
    if (Player1.x + Player1.breite >= Hindernis1.x && Player1.x <= Hindernis1.x + Hindernis1.breite && Player1.y + Player1.hoehe >= Hindernis1.y && Player1.y <= Hindernis1.y + Hindernis1.hoehe) {
        gameover = true;
    }
    if (gameover == true){
        allesWeg();
        gestartet = false;
        gameLose();   
    }
    if (Essen1.x + Essen1.breite >= Hindernis1.x && Essen1.x <= Hindernis1.x + Hindernis1.breite && Essen1.y + Essen1.hoehe >= Hindernis1.y && Essen1.y <= Hindernis1.y + Hindernis.hoehe) {
        Essen1.update();
    }
    if (Player1.x + Player1.breite >= Essen1.x && Player1.x <= Essen1.x + Essen1.breite && Player1.y + Player1.hoehe >= Essen1.y && Player1.y <= Essen1.y + Essen1.hoehe) {
        punkte++;
        if(punkte == 2){
            Essen1.x = random(50, 550);
            Essen1.y = random(50, 550);
            Hindernis1.x = Hindernis1.x + random(-20, 20);
            Hindernis1.y = Hindernis1.y + random(-20, 20);
            timer = 400;
            }else if(punkte == 3){
            Essen1.x = random(50, 550);
            Essen1.y = random(50, 550);
            Hindernis1.x = Hindernis1.x + random(-25, 25);
            Hindernis1.y = Hindernis1.y + random(-25, 25);
            timer = 400;
            }else if(punkte == 4){
            Essen1.x = random(50, 550);
            Essen1.y = random(50, 550);
            Hindernis1.x = Hindernis1.x + random(-30, 30);
            Hindernis1.y = Hindernis1.y + random(-30, 30);
            timer = 400;
            }else if(punkte == 5){
            Essen1.x = random(50, 550);
            Essen1.y = random(50, 550);
            Hindernis1.x = Hindernis1.x + random(-35, 35);
            Hindernis1.y = Hindernis1.y + random(-35, 35);
            timer = 400;
            }else if(punkte == 6){   
            level = level + 1;    
            gewonnen = true;
            Essen1.x = random(50, 550);
            Essen1.y = random(50, 550);
            Hindernis1.x = Hindernis1.x + random(-40, 40);
            Hindernis1.y = Hindernis1.y + random(-40, 40);
            timer = 400;
            }else if(punkte == 7){
            Essen1.x = random(50, 550);
            Essen1.y = random(50, 550);
            Hindernis1.x = Hindernis1.x + random(-45, 45);
            Hindernis1.y = Hindernis1.y + random(-45, 45);
            timer = 400;
            }else if(punkte == 8){
            Essen1.x = random(50, 550);
            Essen1.y = random(50, 550);
            Hindernis1.x = Hindernis1.x + random(-50, 50);
            Hindernis1.y = Hindernis1.y + random(-50, 50);
            timer = 400;
            }else if(punkte == 9){
            Essen1.x = random(50, 550);
            Essen1.y = random(50, 550);
            Hindernis1.x = Hindernis1.x + random(-55, 55);
            Hindernis1.y = Hindernis1.y + random(-55, 55);
            timer = 400;
            }else if(punkte == 10){
            level = level + 1;    
            gewonnen = true;
            }
    }
    if (timer == 0) {
        gameover = true;  
    }
    if (gewonnen == true){
        allesWeg();
        gameWin();     
    }
    if(level == 2) {
        level = 2;    
    }
}
void mouseReleased() {
    gestartet = true;
    if (gewonnen) {
        allesDa();        
    }
    if (gameover) {
        allesDa();
        level = 0; 
    }
}
void allesWeg() {
    Player1.x = -100;
    Player1.y = -100;
    Hindernis1.x = -1000;
    Hindernis1.y = -1000;
    Essen1.x = 100;
    Essen1.y =-100;
}
void allesDa() {
    Player1.x = 100;
    Player1.y = 100;
    Hindernis1.x = 200;
    Hindernis1.y = 250;
    Essen1.x = random(50, 550);
    Essen1.y = random(50, 550);
    st.text = false;
    textSize(32);
    text("Punkte:", 450, 50);
    text(punkte, 550, 50); 
    gestartet = true; 
    punkte  = 1;        
    gameover = false;
    gewonnen = false;
    timer = 400;
  
    
}
void gameWin() {
    background(0);
    stroke(0);
    textSize(32);
    text("YOU WIN!", 100, 200);
    text("Level:", 100, 300);
    text(level, 300, 300);
    text("Punkte: ", 100, 400);
    text(punkte, 300, 400);
    text("Click mouse to play again!", 100, 500);
    //image(otto, 300, 100, 200, 200);
    image(levelhoeher, 500, 300, 50, 50);
}
void gameLose() {
    background(0);
    fill(255, 0, 0);
    textSize(32);
    text("GAME OVER", 100, 200);
    text("Level:", 100, 300);
    text(level, 300, 300);
    text("Punkte: ", 100, 400);
    text(punkte, 300, 400);
    text("Click mouse to play again!", 100, 500);
    image(anna, 350, 100, 200, 200);
}
void  keyPressed() {
    if (key == CODED) {
        if (keyCode == LEFT) {
            Player1.x -= 10;                 
        }              
        if (keyCode ==  RIGHT) {
                Player1.x += 10;
        }             
        if (keyCode  == UP) {
            Player1.y -= 10;             
        }             
        if (keyCode ==  DOWN) {
            Player1.y += 10;             
        }         
    }     
}        
class Hindernis {
    int x;
    int y;
    int red;
    int green;
    int blue;
    int hoehe;
    int breite;
    
    Hindernis() {
        x = 200;
        y = 250;
        red = 255;
        green = 0;
        blue = 0;
        hoehe = 100;
        breite = 200;        
    }   
    void update() {
       fill(red, green, blue);
       rect(x, y, breite, hoehe);
    }
}
class Player { 
    int x;
    int y;
    int red;
    int green;
    int blue;
    int breite;
    int hoehe;
    
    Player() {
        x = 100 ;
        y = 100 ;
        red = 0;
        blue = 255;
        green = 0;
        breite = 25;
        hoehe = 25;   
    }
    void update() {
        fill(red, green, blue);
        rect(x, y, breite, hoehe);
    }
} 
class Essen {
    int x;
    int y;
    int red;
    int green;
    int blue;
    int breite;
    int hoehe;
    
    Essen() {
        x = random(50, 550);
        y = random(50, 550);
        red = 0;
        green = 255;
        blue = 0;
        breite = 25;
        hoehe = 25;
    }
    void update() {
        fill(red, green, blue);
        rect(x, y, breite, hoehe);
    }
}

class startclick {
    boolean text = true;    
}