grazie mille per aver risposto, il codice è il seguente dove yposball e xposball sn le coordinate del centro della pallina e matrice contiene i valori di un angolo del mattone dal quale sono stati ricavati tutti gli altri.
codice:
//Caso in cui la palla tocca il mattone dal basso
if(yposball + raggio == matrice[i][1]){
//printf("yposball + raggio = y blocco basso - ");
//Facendo xposball + raggio i due angoli dovebbero essere inclusi
if((xposball+raggio >= matrice[i][0] && xposball+raggio <= matrice[i][0]+40) ||
(xposball-raggio >= matrice[i][0] && xposball-raggio <= matrice[i][0]+40)){
//Scontro dal Basso
changeColor(i);
//dy= RangedRand(-2,-1);
dy = -1;
printf("a. Scontro dal basso su mattone %d\n", i);
}
}//fine if controllo basso
//Caso in cui la palla tocca il mattone dall'alto
if(yposball - raggio == matrice[i][1]+10){
if((xposball+raggio >= matrice[i][0] && xposball+raggio <= matrice[i][0]+40) ||
(xposball-raggio >= matrice[i][0] && xposball-raggio <= matrice[i][0]+40)){
changeColor(i);
//dy = RangedRand(1,2);
dy=1;
printf ("b. Scontro dall'alto su mattone %d\n", i);
}
}//fine if controllo dall'alto
//Caso in cui la palla tocca il mattone dal lato sinistro
if(yposball >= matrice[i][1] && yposball <= matrice[i][1]+10){
printf ("e. SINISTRO su mattone %d \n", i);
if(xposball + raggio == matrice[i][0]){
//changeColor(i);
dy = -1;
printf ("c. Scontro dal lato sinistro del mattone e cambio direzione %d\n", i);
}
}//fine if lato sinistro
//Caso in cui la palla tocca il mattone dal lato destro
if(yposball >= matrice[i][1] && yposball <= matrice[i][1]+10){
printf ("e. DESTRO su mattone %d \n",i);
if(xposball - raggio == matrice[i][0]+40){
//changeColor(i);
dy = -1;
printf ("d. Scontro dal lato destro del mattone e cambio direzione %d\n", i);
}
}