Verificare la collisione è facile: due circonferenze si intersecano se la distanza tra i centri è minore della somma dei raggi.
La funzione che vuoi tu è semplice (pseudocodice):codice:int collisione(palla_t palla1, palla_t palla2) { if ( distanza(palla1.centro, palla2.centro) < (palla1.raggio + palla2.raggio) ) return 1; else return 0; }
codice:FOREACH (palla1 in lista_palle) { FOREACH (palla2 in lista_palle) { if (palla1 == palla2) continue; if (collisione(palla1, palla2)) { cambia_colore(palla1); elimina_palla(palla2); } } }

Rispondi quotando