|
From: julien r. <jul...@us...> - 2004-10-10 21:12:38
|
Update of /cvsroot/epfl/tgengine-0.1 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19775 Modified Files: physicengine.cc q3bsp.cc q3bsp.h Log Message: Quelques ajouts pour l'IA (méthode FindCluster) Index: physicengine.cc =================================================================== RCS file: /cvsroot/epfl/tgengine-0.1/physicengine.cc,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** physicengine.cc 10 Oct 2004 20:49:09 -0000 1.8 --- physicengine.cc 10 Oct 2004 21:11:55 -0000 1.9 *************** *** 89,93 **** //Vector3 origin = n->GetPosition(); //on ajoute la gravite ! if (!n->bOnGround) n->vAccel.y -= (*fGravity); else if (n->vAccel.y < 0) //si l'objet touche le sol, il faut ramener la gravité à zéro, sinon, l'objet va se retrouver avec une gravité négative très grande (ça l'empeche de sauter notamment) --- 89,93 ---- //Vector3 origin = n->GetPosition(); //on ajoute la gravite ! if (!n->bOnGround && !n->bNoClip) n->vAccel.y -= (*fGravity); else if (n->vAccel.y < 0) //si l'objet touche le sol, il faut ramener la gravité à zéro, sinon, l'objet va se retrouver avec une gravité négative très grande (ça l'empeche de sauter notamment) Index: q3bsp.cc =================================================================== RCS file: /cvsroot/epfl/tgengine-0.1/q3bsp.cc,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** q3bsp.cc 27 Sep 2004 16:31:35 -0000 1.5 --- q3bsp.cc 10 Oct 2004 21:11:55 -0000 1.6 *************** *** 768,772 **** { int index = 0; ! // Les nodes ont des index > 0 // Les leafs ont des index négatifs. Pour obtenir l'index dans le tableau pLeafs, on fait index_tableau = -index_node - 1 ; while (index >= 0) --- 768,772 ---- { int index = 0; ! // Les nodes ont des index >= 0 // Les leafs ont des index négatifs. Pour obtenir l'index dans le tableau pLeafs, on fait index_tableau = -index_node - 1 ; while (index >= 0) *************** *** 1004,1008 **** int iCamLeaf = FindLeaf(pCamera->vPosition); int iCamCluster = pLeafs[iCamLeaf].cluster; - for (int i=0; i<numOfLeafs; i++) { --- 1004,1007 ---- Index: q3bsp.h =================================================================== RCS file: /cvsroot/epfl/tgengine-0.1/q3bsp.h,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** q3bsp.h 26 Sep 2004 13:15:25 -0000 1.1.1.1 --- q3bsp.h 10 Oct 2004 21:11:55 -0000 1.2 *************** *** 439,442 **** --- 439,450 ---- */ int FindLeaf (const Vector3& pos); + + /** + * FindCluster + * Retourne le cluster d'une position, utile parce que lorsque l'on est en-dehors de la map, le cluster est égal a -1 !! + * @param pos le point dont on veut le cluster + * @return le numero du cluster + */ + inline int FindCluster (const Vector3& pos) { return pLeafs[FindLeaf(pos)].cluster; } /** |