Warum funktioniert das hier nicht?
Hi. Ich bin am programmieren in Processing und bekomme den Fehler "Expecting EOF, found if" und weiß nicht warum. Kann mir jemand helfen?
//Variablen des Balles
int xball = 400;
int yball = 300;
int xspeed = 5;
int yspeed = 5;
//Variabeln des Paddels
int xrect = mouseX;
int yrect = 500;
//Variabeln für die Leben
int leben = 3;
int score = 0;
//Variabeln für die Bricks
int[] xBrick = new int[100];
int[] yBrick = new int[100];
boolean[] activeBrick = new boolean[70];
//Spielfeld und Farbe des Hintergrundes
void setup() {
size(800, 600);
background(0);
//Bricks auf aktiv setzen
for(int i=0;i<60;i++){
activeBrick[i] = true;
}
}
//Zeichnen von Bricks,Paddel und Ball
void draw() {
background(0);
int xrect = mouseX;
for(int i=0;i<10;i++){
for(int k=0;k<6;k++){
xBrick[i] = i*80;
yBrick[k] = k*30;
}
}
for (int i = 0; i < 10; i++) {
for (int k = 0; k < 6; k++) {
if(activeBrick[k*10+i] == true){
fill(#6d00cc);
rect(80*i, 30*k, 60, 15);
}
}
}
rect(mouseX, yrect, 80, 20);
fill(#FFFF00);
ellipse(xball, yball, 30, 30);
stroke(50);
strokeWeight(3);
//Ball prallt von den Wänden ab
if (xball > 800){
xspeed = -xspeed;
}
if (xball < 0) {
xspeed = -xspeed;
}
if (yball < 0) {
yspeed = -yspeed;
}
xball = xball + xspeed;
yball = yball + yspeed;
//wenn der ball nicht im spielfeld ist, ihn respawnen
if (yball > 600) {
delay(2000);
xball = 400;
yball = 300;
//Ein leben abziehen,wenn der Ball aus dem Feld ist
leben = leben-1;
}
//Abprallen von Ball an Paddle
if (xball > xrect && xball < xrect+80 && yball > yrect && yball < yrect+20) {
yspeed=-yspeed;
}
}
if (score==60){
stroke(255);
textSize(128);
text("You win");
stop();
}
println(leben);
if (leben==0){
background(#00CD00);
stroke(255);
textSize(128);
text("You Lose",50,250);
stop();
}
drawBricks();
checkBrickCollision();
}
void drawBricks(){
for(int i=0;i<10;i++){
for(int k=0;k<7;k++){
xBrick[i] = i*80;
yBrick[k] = k*30;
}
}
for (int i = 0; i < 10; i++) {
for (int k = 0; k < 7; k++) {
if(activeBrick[k*10+i] == true){
rect(xBrick[i],yBrick[k],80,20);
fill(#FFFF00);
}
}
}
}
//Zusammenstoß von Ball und Bricks
void checkBrickCollision(){
for (int i=0;i<10;i++){
for(int k=0;k<7;k++){
if(xball > xBrick[i] && xball < xBrick[i]+60 && yball > yBrick[k] && yball< yBrick[k]+20 && activeBrick[k*10+i] == true) {
activeBrick[k*10+i] = false;
//Brick auf inaktive setzen
activeBrick[k*10+i]=false;
score++
//y-Richtung des Balls ändern
yspeed=-yspeed;
}
}
}
}
1 Antwort
Auffallen tut erstmal dass vor:
if (score==60){
zwei Klammern zu gehen und damit dieser Teil nicht mehr in der Funktion draw() ist. Würde mal tippen, dass er sich daran aufhängt.
Woher ich das weiß:Berufserfahrung – Softwareentwickler/Projektleiter seit 2012