int phase = 1; //1: Startbildschirm; 2: Steuerung; 3: Spiel int posX = 200; float posXball = 300.0; float posYball = 200.0; float tempoXball = (4); float tempoYball = (4); boolean blockGetroffen = false; int violett1 = 0; int gelb1 = 0; int grün1 = 0; int dunkeltürkis1 = 0; int laubgrün1 = 0; int rosa1 = 0; int orange1 = 0; int türkis1 = 0; int violett2 = 0; int gelb2 = 0; int grün2 = 0; int dunkeltürkis2 = 0; int laubgrün2 = 0; int rosa2 = 0; int orange2 = 0; void setup() { size(600,400); textAlign(CENTER); frameRate(40); } void draw() { background(#B0E2FC); if(phase == 1) { fill(0); textSize(60); text("Color Block",300,100); line(200,140,400,140); fill(0); rect(150, 220, 100, 100, 25); rect(350, 220, 100, 100, 25); fill(255); textSize(20); text("Steuerung",200,280); text("Spiel",400,280); if(mousePressed && mouseButton == LEFT) { if(mouseX >= 150 && mouseX <= 250 && mouseY >= 240 && mouseY <= 340) { phase = 2; } else if(mouseX >= 350 && mouseX <= 450 && mouseY >= 240 && mouseY <= 340) { phase = 3; } } } else if(phase == 2) { background(0,60,30); textSize(30); String s = "Mit der linken und rechten Pfeiltaste lässt sich der weisse Balken verschieben. Versuche nun mithilfe des Balls, alle farbigen Klötzchen verschwinden zu lassen. Viel Spass!"; text(s,10,10,590,200); textSize(20); text("Drücke r, um zurück zum Hauptmenu zu gelangen",300,300); //Klick erkennen if(keyPressed && key == 'r') { phase = 1; background(0); } } if(phase == 3) { background(#B0E2FC); fill(255); if(keyPressed && key == CODED) { //Balken bewegen if(keyCode == LEFT) { posX = posX - 6; } if (keyCode == RIGHT) { posX = posX + 6; } } fill(255); // Balken strokeWeight(5); rect(posX,340,150,40); strokeWeight(1); fill(200); //Ball circle(posXball,posYball,30); posXball = posXball + tempoXball; // Bewegung des Balls posYball = posYball + tempoYball; if(posXball < 0 | posXball > width) { //Abprallen an Wänden tempoXball = tempoXball * -1; } if(posYball < 0) { tempoYball = tempoYball * -1; } if(posYball > 330 && posXball > posX && posXball < posX + 150) { // Abprallen an Balken tempoYball = tempoYball * -1; } fill(#CB64F7); //violett1 rect(violett1,0,40,60); fill(#E6EA6B); //gelb1 beginShape(); vertex(gelb1 + 40,0); vertex(gelb1 + 120,0); vertex(gelb1 + 120,140); vertex(gelb1 + 80,140); vertex(gelb1 + 80,60); vertex(gelb1 + 40,60); vertex(gelb1 + 40,0); endShape(); fill(#9AFAAB); // grün1 square(grün1,60,80); fill(#569CC6); //dunkeltürkis1 rect(dunkeltürkis1 + 120,0,120,70); fill(#AAC656); //laubgrün1 rect(laubgrün1 + 120,70,120,70); fill(#F58182); // rosa1 rect(rosa1,140,180,40); fill(#EACB4C); //orange1 beginShape(); vertex(orange1 + 180,140); vertex(orange1 + 240,140); vertex(orange1 + 240,0); vertex(orange1 + 280,0); vertex(orange1 + 280,180); vertex(orange1 + 180,180); vertex(orange1 + 180,140); endShape(); fill(#28C2C6); //türkis1 rect(türkis1 + 320,0,80,80); fill(#CB64F7); // violett2 rect(violett2 + 280,0,40,180); fill(#F58182); // rosa2 beginShape(); vertex(rosa2 + 400,0); vertex(rosa2 + 520,0); vertex(rosa2 + 520,40); vertex(rosa2 + 440,40); vertex(rosa2 + 440,120); vertex(rosa2 + 320,120); vertex(rosa2 + 320,80); vertex(rosa2 + 400,80); vertex(rosa2 + 400,0); endShape(); fill(#AAC656); //laubgrün2 beginShape(); vertex(laubgrün2 + 520,0); vertex(laubgrün2 + 560,0); vertex(laubgrün2 + 560,80); vertex(laubgrün2 + 440,80); vertex(laubgrün2 + 440,40); vertex(laubgrün2 + 520,40); vertex(laubgrün2 + 520,0); endShape(); fill(#569CC6); //dunkeltürkis2 rect(dunkeltürkis2 + 560,0,40,120); fill(#EACB4C); //orange2 rect(orange2 + 440,80,120,100); fill(#9AFAAB); // grün2 rect(grün2 + 320,120,120,60); fill(#E6EA6B); //gelb2 rect(gelb2 + 560,120,40,60); if(posXball >= 0 && posXball <= 40 && posYball >= 0 && posYball <= 60) { // Verschwinden des Balls blockGetroffen = true; violett1 = violett1 + 600; tempoXball = tempoXball * -1; } if(posXball >= 40 && posXball <= 120 && posYball >= 0 && posYball <= 60) { blockGetroffen = true; gelb1 = gelb1 + 600; tempoXball = tempoXball * -1;} if(posXball >= 80 && posXball <= 120 && posYball >= 60 && posYball <= 140) { blockGetroffen = true; gelb1 = gelb1 + 600; tempoXball = tempoXball * -1; } if(posXball >= 0 && posXball <= 80 && posYball >= 60 && posYball <= 140) { blockGetroffen = true; grün1 = grün1 + 600; tempoXball = tempoXball * -1; } if(posXball >= 120 && posXball <= 240 && posYball >= 0 && posYball <= 70) { blockGetroffen = true; dunkeltürkis1 = dunkeltürkis1 + 600; tempoXball = tempoXball * -1; } if(posXball >= 120 && posXball <= 240 && posYball >= 70 && posYball <= 140) { blockGetroffen = true; laubgrün1 = laubgrün1 + 600; tempoXball = tempoXball * -1; } if(posXball >= 0 && posXball <= 180 && posYball >= 140 && posYball <=180) { blockGetroffen = true; rosa1 = rosa1 + 600; tempoXball = tempoXball * -1; } if(posXball >= 180 && posXball <= 280 && posYball >= 140 && posYball <= 180) { blockGetroffen = true; orange1 = orange1 + 600; tempoXball = tempoXball * -1;} if(posXball >= 240 && posXball <= 280 && posYball >= 0 && posYball <= 180) { blockGetroffen = true; orange1 = orange1 + 600; tempoXball = tempoXball * -1; } if(posXball >= 320 && posXball <= 400 && posYball >= 0 && posYball <= 80) { blockGetroffen = true; türkis1 = türkis1 + 600; tempoXball = tempoXball * -1; } if(posXball >= 280 && posXball <= 320 && posYball >= 0 && posYball <= 180) { blockGetroffen = true; violett2 = violett2 + 600; tempoXball = tempoXball * -1; } if(posXball >= 400 && posXball <= 520 && posYball >= 0 && posYball <= 40) { blockGetroffen = true; rosa2 = rosa2 + 600; tempoXball = tempoXball * -1;} if(posXball >= 400 && posXball <= 440 && posYball >= 40 && posYball <= 80) { blockGetroffen = true; rosa2 = rosa2 + 600; tempoXball = tempoXball * -1;} if(posXball >= 320 && posXball <= 440 && posYball >= 80 && posYball <= 120) { blockGetroffen = true; rosa2 = rosa2 + 600; tempoXball = tempoXball * -1; } if(posXball >= 520 && posXball <= 560 && posYball >= 0 && posYball <= 40) { blockGetroffen = true; laubgrün2 = laubgrün2 + 600; tempoXball = tempoXball * -1;} if(posXball >= 440 && posXball <= 560 && posYball >= 40 && posYball <= 80) { blockGetroffen = true; laubgrün2 = laubgrün2 + 600; tempoXball = tempoXball * -1; } if(posXball >= 560 && posXball <= 600 && posYball >= 0 && posYball <= 120) { blockGetroffen = true; dunkeltürkis2 = dunkeltürkis2 + 600; tempoXball = tempoXball * -1; } if(posXball >= 440 && posXball <= 560 && posYball >= 80 && posYball <= 180) { blockGetroffen = true; orange2 = orange2 + 600; tempoXball = tempoXball * -1; } if(posXball >= 320 && posXball <= 440 && posYball >= 120 && posYball <= 180) { blockGetroffen = true; grün2 = grün2 + 600; tempoXball = tempoXball * -1; } if(posXball >= 560 && posXball <= 600 && posYball >= 120 && posYball <= 160) { blockGetroffen = true; gelb2 = gelb2 + 600; tempoXball = tempoXball * -1; } if(posYball >= 400) { background(#B0E2FC); fill(0); textSize(50); text("Game over :(", 300,200); textSize(20); text("Drücke r, um zu Startseite zu kommen",300,300); text("Um noch einen Versuch zu starten, lade das Spiel neu!", 300,350); posYball = 400; tempoYball = 0; } if(gelb1 == 600) { background(#B0E2FC); fill(0); textSize(70); text("You win (:", 300,130); textSize(50); text("Bravo!", 300, 200); textSize(20); text("Drücke r, um zu Startseite zu kommen",300,300); text("Um noch einen Versuch zu starten, lade das Spiel neu!", 300,350); tempoYball = 0; tempoXball = 0; posYball = 399; } if(keyPressed && key == 'r') { //Klick erkennen phase = 1; background(0); } } }