Historique des modifications - Message

Message #7056

Sujet: Système de collisions personalisé


Type Date Auteur Contenu
Création du message 06-10-2009 09:01:11 johnplayer
J'avais newton 1.53 avec un tuto, j'ai donc réessayé (il faut mettre de la bonne volonté) et finalement j'ai un début. J'ai initialisé et créé l'update et mon arme(qui est censé jeter des bombes sous formes de boule le fait merveilleusement bien avec les collisions. Maintenant, le problème est que mon world est actuellement en 1 seul mesh mais par la suite il sera divisé en plusieurs mesh.

Code c++ :

// configuration des collisions de la map
	bibliotheque.g_newtonmap = NewtonCreateTreeCollision(bibliotheque.nWorld, NULL);
	NewtonTreeCollisionBeginBuild(bibliotheque.g_newtonmap);
	u32 cMeshBuffer, j;
	int v1i, v2i, v3i;
	IMeshBuffer *mb;

	float vArray[9]; // vertex array (3*3 floats)

	int tmpCount = 0;

	for (cMeshBuffer=0; cMeshBuffer < bibliotheque.node_terrain[0]->getMesh()->getMeshBufferCount(); cMeshBuffer++)
	{	
		mb = bibliotheque.node_terrain[0]->getMesh()->getMeshBuffer(cMeshBuffer);

		video::S3DVertex* mb_vertices = (irr::video::S3DVertex*)mb->getVertices();

		u16* mb_indices  = mb->getIndices();

		// add each triangle from the mesh
		for (j=0; j < mb->getIndexCount(); j+=3)
		{
			v1i = mb_indices[j];
			v2i = mb_indices[j+1];
			v3i = mb_indices[j+2];
	
			vArray[0] = mb_vertices[v1i].Pos.X;
			vArray[1] = mb_vertices[v1i].Pos.Y;
			vArray[2] = mb_vertices[v1i].Pos.Z;
			vArray[3] = mb_vertices[v2i].Pos.X;
			vArray[4] = mb_vertices[v2i].Pos.Y;
			vArray[5] = mb_vertices[v2i].Pos.Z;
			vArray[6] = mb_vertices[v3i].Pos.X;
			vArray[7] = mb_vertices[v3i].Pos.Y;
			vArray[8] = mb_vertices[v3i].Pos.Z;

			NewtonTreeCollisionAddFace(bibliotheque.g_newtonmap, 3, (float*)vArray, 12, 1);
		}

	}
	NewtonTreeCollisionEndBuild(bibliotheque.g_newtonmap, 0);
	bibliotheque.g_newtonmapbody = NewtonCreateBody(bibliotheque.nWorld, bibliotheque.g_newtonmap);

Je me suis demandé si je pouvais charger, via une petite retouche, tous les triangles de tout les meshs les uns à la suite des autres.

Retour

Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
122 invités en ligne
membre en ligne: -
RSS Feed