Pages: 1
- Accueil forums
- » Collisions
- » Gestion de la collision avec plusieurs objets dans une scene.
27-06-2007 08:16:14
- gp2mv3
- Membres
- Date d'inscription:
- Messages: 103
- IP: 81.245.153.150
- Courriel Site web
Salut,
Je fais un MMORPG mais j'ai un probleme, je ne sais pas comment mettre plusieur gestions de la collision.
J'ai déja un system de ce type pour le terrain mais il y a des batiments et la la camera passe à travers les murs.
Comment faire?
Merci d'avance.
Gp2mv3
Hors ligne
27-06-2007 09:35:54
- Willikus
- Membres

- Date d'inscription:
- Messages: 150
- IP: 86.214.2.10
- Courriel Site web
il faut utilisé le metaSelector :
scene::IMetaTriangleSelector* metaSelector = smgr->createMetaTriangleSelector();
metaSelector->addTriangleSelector(selectormap);
metaSelector->addTriangleSelector(selectormaison);
...
scene::ISceneNodeAnimatorCollisionResponse* choc = smgr->createCollisionResponseAnimator(metaSelector, camera, core::vector3df(45,75,45), core::vector3df(0,-15,0), core::vector3df(0,50,0));
camera->addAnimator(choc);
Si ta des questions...
a+
w
Athlon 3000+ / 1024Mo PC3200 /8800 GTS
Hors ligne
28-06-2007 09:37:50
- gp2mv3
- Membres
- Date d'inscription:
- Messages: 103
- IP: 81.245.153.150
- Courriel Site web
J'ai éssayé mais je ne comprends pas bien comment l'utiliser avec un terrain.
Voici le code pour la simple colision avec le terrain :
//Les collisions
scene::ITriangleSelector* selector = smgr->createTerrainTriangleSelector(nsol, 0);
nsol->setTriangleSelector(selector);
ISceneNodeAnimatorCollisionResponse* collider;
collider = smgr->createCollisionResponseAnimator(
selector, camera, core::vector3df(25,50,25),
core::vector3df(0, nsol ? -2.5 : 0.0,0),
core::vector3df(0,45,0), 0.005f);
camera->addAnimator(collider);
collider->drop();
Je ne sais pas trop si je dois déclarer les selecteur avant de mettre ton code ou pas.
Merci d'avance.
Gp2mv3
Hors ligne
28-06-2007 11:27:55
- Aranoth
- Membres

- Date d'inscription:
- Messages: 242
- IP: 81.50.85.94
- Courriel Site web
Tu dois d'abord créer le TriangleSelector de ton terrain et de tes maisons, puis ensuite créer le MetaTriangleSelector et y ajouter les TriangleSelector :
//Les collisions
scene::ITriangleSelector* selector = smgr->createTerrainTriangleSelector(nsol, 0);
nsol->setTriangleSelector(selector);
// le meta triangle selector
scene::IMetaTriangleSelector* metaSelector = smgr->createMetaTriangleSelector();
metaSelector->addTriangleSelector(selector);
// l'animator
ISceneNodeAnimatorCollisionResponse* collider;
collider = smgr->createCollisionResponseAnimator(
metaSelector, camera, core::vector3df(25,50,25),
core::vector3df(0, nsol ? -2.5 : 0.0,0),
core::vector3df(0,45,0), 0.005f);
camera->addAnimator(collider);
collider->drop();Le MetaTriangleSelector est un regroupement de TriangleSelector et s'utilise comme eux
Hors ligne
01-07-2007 09:17:09
- gp2mv3
- Membres
- Date d'inscription:
- Messages: 103
- IP: 81.242.148.47
- Courriel Site web
Merci de vos réponses.
Effectivement, ton code fonctionne Aranoth.
Merci de votre aide.
Gp2mv3
Hors ligne



