int calcul_deplacement_preds(modele_t*m){ int i; vecteur_t *result = new_vecteur(0,0,0); for(i=0;i<m->nbPre;i++){ recherche_proies(m,i); add_vecteur(result,chasse(m,i,100)); limite_vit(result,10); application_deplacement(m->tabPre[i],result,10,3); } return 1; }
void anim(void) { G2Xpoint m = g2x_GetMousePosition(); /* chien suis souris */ Particule *moutons= tab_moutons; Particule *chiens= tab_chiens; Particule *loups=tab_loups; /* poursuite(souris,chiens) */ if(point_in_window(m)) cible(chiens,m,alpha); /* poursuite (chien,mouton) */ for(moutons=tab_moutons;moutons<tab_moutons+NB_MOUTONS;moutons++){ cible(moutons,chiens->pos,alpha); } /* chasse loup mouton */ for(loups=tab_loups;loups<tab_loups+NB_LOUPS;loups++) chasse(loups,tab_moutons,1.); /* Group collision */ /*for(moutons=tab_moutons;moutons<tab_moutons+NB_MOUTONS;moutons++) */groupCollision(tab_moutons); /* Tous fonctions évitement */ for(chiens=tab_chiens;chiens<tab_chiens+NB_CHIENS;chiens++) detect_avoid(chiens,circ,NC); for(moutons=tab_moutons;moutons<tab_moutons+NB_MOUTONS;moutons++) detect_avoid(moutons,circ,NC); for(loups=tab_loups;loups<tab_loups+NB_LOUPS;loups++) detect_avoid(loups,circ,NC); /* Tous les bords */ for(chiens=tab_chiens;chiens<tab_chiens+NB_CHIENS;chiens++) chiens->edge(chiens); for(moutons=tab_moutons;moutons<tab_moutons+NB_MOUTONS;moutons++) moutons->edge(moutons); for(loups=tab_loups;loups<tab_loups+NB_LOUPS;loups++) loups->edge(loups); /* Tous les mouvement */ for(chiens=tab_chiens;chiens<tab_chiens+NB_CHIENS;chiens++) chiens->move(chiens); for(moutons=tab_moutons;moutons<tab_moutons+NB_MOUTONS;moutons++) moutons->move(moutons); for(loups=tab_loups;loups<tab_loups+NB_LOUPS;loups++) loups->move(loups); }