#0 

27-06-2007 10:16:14

gp2mv3
Abonné
Date d'inscription: 27-06-2007
Messages: 103
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


Mon projet sous Irrlicht : RoM : Rebuilding on Mars
N'hésitez pas à y faire un tour wink

Hors ligne


#1 

27-06-2007 11:35:54

Willikus
Abonné
Date d'inscription: 21-10-2006
Messages: 150
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


#2 

28-06-2007 11:37:50

gp2mv3
Abonné
Date d'inscription: 27-06-2007
Messages: 103
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


Mon projet sous Irrlicht : RoM : Rebuilding on Mars
N'hésitez pas à y faire un tour wink

Hors ligne


#3 

28-06-2007 13:27:55

Aranoth
Abonné
Lieu: Toulouse
Date d'inscription: 25-09-2006
Messages: 242
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 :

Code:

//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


#4 

01-07-2007 11:17:09

gp2mv3
Abonné
Date d'inscription: 27-06-2007
Messages: 103
Site web

Merci de vos réponses.
Effectivement, ton code fonctionne Aranoth.
Merci de votre aide.

Gp2mv3


Mon projet sous Irrlicht : RoM : Rebuilding on Mars
N'hésitez pas à y faire un tour wink

Hors ligne


Options Liens officiels Caractéristiques Statistiques Communauté
Corrections
irrlicht
irrklang
irredit
irrxml
xhtml 1.0
css 2.1
Propulsé par FluxBB
Traduit par FluxBB.fr
883 membres
1429 sujets
11121 messages
Dernier membre inscrit: Saidov17
76 invités en ligne
Aucun membre connecté
RSS Feed