#1 

17-11-2011 20:05:52

Lagiol
Membres
Avatar de Lagiol
Date d'inscription:
Messages: 24
IP: 88.163.115.125
Courriel

Bonjour,
j'ai réussi à créer une détection de collision pour un mesh. Maintenant j'aimerais en ajouter un 2ème, histoire d'avoire une map plus grande. Seulement je n'y arrive pas. On peux passer à travers le mesh. Quelqu'un a une solution ?


Hors ligne


#2 

17-11-2011 20:53:45

thoced
Membres
Date d'inscription:
Messages: 65
IP: 91.86.183.240
Courriel

Peut etre devrais tu fournir un peu de ton code pour voir où est le probleme


Hors ligne


#3 

18-11-2011 21:37:42

Lagiol
Membres
Avatar de Lagiol
Date d'inscription:
Messages: 24
IP: 88.163.115.125
Courriel

D'abbord, j'ajoute un node qui servira comme début de map et un Triangle selector

IAnimatedMesh *mesh = sceneManager->getMesh("maps/pique_nique_v2.obj");
IMeshSceneNode *node = 0;

if (mesh)
node = sceneManager->addOctTreeSceneNode(mesh->getMesh(0), 0, IDFlag_IsPickable);

if (node)
{
selector = sceneManager->createOctTreeTriangleSelector(node->getMesh(), node, 128);
node->setMaterialFlag(EMF_LIGHTING, false);
}
node->setPosition(vector3df(0.0f,0.0f,0.0f));
node->setScale(vector3df(35.0f,35.0f,35.0f));

Là pas de problème. Et là, lorsque j'ajoute un deuxième node pour agrandire ma map, il y a quelques bugs

IAnimatedMeshSceneNode *node2 = sceneManager->addAnimatedMeshSceneNode(sceneManager->getMesh("maps/plat.obj"), 0, IDFlag_IsPickable);
node2->setPosition(vector3df(400.0f+100,0.0f,0.0f));
node2->setScale(vector3df(40.0f,40.0f,40.0f));
selector2 = sceneManager->createTriangleSelector(node2);

Et après, je sais pas si ça peux vous servir, mais voilà les selector

//selectors
if (selector)
{
ISceneNodeAnimator* animator = sceneManager->createCollisionResponseAnimator(selector, camera, vector3df(30,50,30), vector3df(0,-2,0), vector3df(0,30,0));
selector->drop();
camera->addAnimator(animator);
animator->drop();
}
if (selector2)
{
ISceneNodeAnimator *animator2 = sceneManager->createCollisionResponseAnimator(selector2, camera, vector3df(30,50,30), vector3df(0,-2,0), vector3df(0,30,0));
selector2->drop();
camera->addAnimator(animator2);
animator2->drop();
}

Dites-moi si il y a un truc qui cloche


Hors ligne


#4 

19-11-2011 13:03:09

Magun
Administrateurs
Avatar de Magun
Date d'inscription:
Messages: 910
IP: 188.93.45.30
Courriel  Site web

regarde du coter d'un http://irrlicht.sourceforge.net/docu/classirr_1_1scene_1_1_i_meta_triangle_selector.html
je n'utilise pas les "collision" d'irrlicht perso mais bullet, je ne suis donc pas d'une grand aide

mais je suppose qu'il faut crée un IMetaTriangleSelector ajouter t'est deux triangle selector, et enfin crée un animator sur celui-ci pour la camera.
sinon regarde la demo d'irrlicht wink

Hors ligne


#5 

19-11-2011 13:07:39

Lagiol
Membres
Avatar de Lagiol
Date d'inscription:
Messages: 24
IP: 88.163.115.125
Courriel

Et je pourrais faire ça avec autantde mesh que je le veux ?

Et Bullet c'est quoi ?


Hors ligne


#6 

19-11-2011 13:38:07

Lagiol
Membres
Avatar de Lagiol
Date d'inscription:
Messages: 24
IP: 88.163.115.125
Courriel

Sinon c'était bien ça, il fallais grouper les selectors dans un seul Meta et crééer un animator fait pour lui seul


Hors ligne


#7 

20-11-2011 07:44:22

thoced
Membres
Date d'inscription:
Messages: 65
IP: 91.86.186.105
Courriel

Oui, magun a raison, utilise un meta et tu pourra en ajouter tant que tu veux a§


Hors ligne


#8 

20-11-2011 13:03:31

Magun
Administrateurs
Avatar de Magun
Date d'inscription:
Messages: 910
IP: 188.93.45.30
Courriel  Site web

Hors ligne


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
168 invités en ligne
membre en ligne: -
RSS Feed