Tu n'as pas le choix, il faut bien vérifier les collisions. Après tu peux optimiser ce genre de chose selon ton programme. Par exemple voir s'il n'y pas des cas ou appeler if (j!=i) obj[i]->collide(obj[j]); n'est pas nécessaire. De plus, dans cette boucle tu vas traiter deux fois le même cas. Mais bon comme tu l'as dit
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 for (i=0;i<nbObjets;i++) { for (j=0;j<nbObjets;j++) { if (j!=i) obj[i]->collide(obj[j]); //pour qu'un objet ne se teste pas sur lui meme } }reflexion en live laJe dirais qu'il te faut un gestionnaire de collision.pour les collidable c plus compliqué, pour les collisions entre objets par exemple. Ca oblige chaque objet collidable à avoir connaissance de tout les autres objets collidable :/
Partager