I know that you earlier suggested a different use of array for the brick positions but I would like to keep it the way I did so that I can really perfect this method and really understand what I am doing and what I started.
I still have a little problem with collision detection. Sometimes, the ball will hit a brick’ side and it won’t disappear at all which I find quite annoying.
I think that there is a problem with the distance covered but I am not quite sure. Is there anything that seems a little bit weird here?
//Je dessine mes briques - boucle for
for (i=0; i<50; i++) {
bx = i%10*110+10;
by = 40*(i/10)+10;
// Les briques apparaissent et sont dessinées si blocks[i]==1, elles disparaissent si blocks[i]==0
if (blocks[i]==1) {
// Draw the block
fill(255);
stroke(0);
rect(bx+40, by+10, bw, bh);
}
//Détection collision entre ma balle et les briques
//Haut-bas des briques
if(xBalle > (bx+4) && xBalle < (bx+96) &&
yBalle > by && yBalle<(by+30) && blocks[i]==1){ //OK
blocks[i]=0; //Disparition
ySpeed = - ySpeed;
}
//Détection collision entre ma balle et côté
if (((xBalle > (bx-5) && xBalle < bx) || (xBalle > (bx+100) && xBalle < (bx+105))) &&
yBalle > by && yBalle < (by+30) && blocks[i]==1) { //OK
blocks[i]=0; //Disparition
xSpeed = - xSpeed;
}
//Détection suite
if (((xBalle > (bx-1) && xBalle < (bx+5)) || (xBalle > (bx+95) && xBalle < (bx+101))) &&
yBalle > by && yBalle <(by+30) && blocks[i]==1) { //OK
blocks[i]=0; //Disparition
xSpeed = - xSpeed;
ySpeed = - ySpeed;
}
}