Good, I'm with a project where a function checks if a ball touches a wall, which is an array of 15 "portions" with each 50u of size. I need to know what part of the wall it touches and for that I have done the following, but it is exaggeratedly spectacular:
if(bolaY == INIPANTALLAY + ALCADAMAO)//Comprueba que llegue hasta la altura del maon
{
if (bolaX > 30 && bolaX < 80)
{
if (Mao[0].maotrencat == false)//Si el maon tocado no esta roto continua
{
Mao[0].maotrencat = true;//Cambia el estado del maon
punts += 1;//Suma 1 punto
dirX *= -1;// cambio de direccion
dirY *= -1;// cambio de direccion
}
}
else if (bolaX > 80 && bolaX < 140)
{
if (Mao[1].maotrencat == false)//Si el maon tocado no esta roto continua
{
Mao[1].maotrencat = true;//Cambia el estado del maon
punts += 1;//Suma 1 punto
dirX *= -1;// cambio de direccion
dirY *= -1;// cambio de direccion
}
}
else if (bolaX > 140 && bolaX <200)
{
if (Mao[2].maotrencat == false)//Si el maon tocado no esta roto continua
{
Mao[2].maotrencat = true;//Cambia el estado del maon
punts += 1;//Suma 1 punto
dirX *= -1;// cambio de direccion
dirY *= -1;// cambio de direccion
}
}
else if (bolaX > 200 && bolaX <260)
{
if (Mao[3].maotrencat == false)//Si el maon tocado no esta roto continua
{
Mao[3].maotrencat = true;//Cambia el estado del maon
punts += 1;//Suma 1 punto
dirX *= -1;// cambio de direccion
dirY *= -1;// cambio de direccion
}
}
else if (bolaX > 260 && bolaX <320)
{
if (Mao[4].maotrencat == false)//Si el maon tocado no esta roto continua
{
Mao[4].maotrencat = true;//Cambia el estado del maon
punts += 1;//Suma 1 punto
dirX *= -1;// cambio de direccion
dirY *= -1;// cambio de direccion
}
}
else if (bolaX > 320 && bolaX <380)
{
if (Mao[5].maotrencat == false)//Si el maon tocado no esta roto continua
{
Mao[5].maotrencat = true;//Cambia el estado del maon
punts += 1;//Suma 1 punto
dirX *= -1;// cambio de direccion
dirY *= -1;// cambio de direccion
}
}
else if (bolaX > 380 && bolaX <440)
{
if (Mao[6].maotrencat == false)//Si el maon tocado no esta roto continua
{
Mao[6].maotrencat = true;//Cambia el estado del maon
punts += 1;//Suma 1 punto
dirX *= -1;// cambio de direccion
dirY *= -1;// cambio de direccion
}
}
else if (bolaX > 440 && bolaX <500)
{
if (Mao[7].maotrencat == false)//Si el maon tocado no esta roto continua
{
Mao[7].maotrencat = true;//Cambia el estado del maon
punts += 1;//Suma 1 punto
dirX *= -1;// cambio de direccion
dirY *= -1;// cambio de direccion
}
}
else if (bolaX > 500 && bolaX <560)
{
if (Mao[8].maotrencat == false)//Si el maon tocado no esta roto continua
{
Mao[8].maotrencat = true;//Cambia el estado del maon
punts += 1;//Suma 1 punto
dirX *= -1;// cambio de direccion
dirY *= -1;// cambio de direccion
}
}
else if (bolaX > 560 && bolaX <620)
{
if (Mao[9].maotrencat == false)//Si el maon tocado no esta roto continua
{
Mao[9].maotrencat = true;//Cambia el estado del maon
punts += 1;//Suma 1 punto
dirX *= -1;// cambio de direccion
dirY *= -1;// cambio de direccion
}
}
I tried to improve it with a switch, but I'm not sure if it's possible considering the comparison and the & & amp; in each case.