#1 

11-04-2012 22:02:45

RVM
Membres
Date d'inscription:
Messages: 20
IP: 81.50.206.60
Courriel

Hello,

Je cherche depuis quelques heures mais mon problèmes reste sans solution...

Je cherche à créer une collision entre ma caméra, mon terrain et la node a laquelle ma caméra est attachée.
Lors de la création de caméra, je lui ajoute un animator du type trackball.
Puis je crée un MetaTriangleSelector, j'ajoute celui du terrain + celui du node et j’applique celui-ci sur ma caméra.
==> Sa ne fonctionne pas.

Pourtant la collision entre la node et mon terrain est ok. Si j'enlève l'animator alors les collisions fonctionnes.

Voici mon code :

Code c++ :


//Ajoute une camera
     irr::scene::ICameraSceneNode* cam = SceneManager->addCameraSceneNode(node, irr::core::vector3df(10,10,40),node->getPosition());
    CSceneNodeAnimatorCameraTrackball *cam_animator = new CSceneNodeAnimatorCameraTrackball(VideoDriver, Irr_Device->getCursorControl(), 50,4,6);

    cam->addAnimator(cam_animator);
    cam_animator->drop();

    //Selector Terrain
    irr::scene::ITriangleSelector *terrain_selector = SceneManager->createTerrainTriangleSelector(terrain, 0);
    terrain->setTriangleSelector(terrain_selector);

    //Selector node_1
    irr::scene::ITriangleSelector *node_selector = SceneManager->createTriangleSelectorFromBoundingBox(node);
    node->setTriangleSelector(node_selector);

    //Creation d'un container de triangleselector
    irr::scene::IMetaTriangleSelector *meta_cam = SceneManager->createMetaTriangleSelector();
    meta_cam->addTriangleSelector(terrain_selector);
    meta_cam->addTriangleSelector(node_selector);

    //Collision cam
    irr::scene::ISceneNodeAnimator *colli_cam_anim = SceneManager->createCollisionResponseAnimator(meta_cam, cam, irr::core::vector3df(10, 20, 10), irr::core::vector3df(0,0,0), irr::core::vector3df(0,0,0));
    cam->addAnimator(colli_cam_anim);
    colli_cam_anim->drop();

    //Collision cube
        //Bounding box cube
    const irr::core::aabbox3d<irr::f32>& box = node->getBoundingBox();
    irr::core::vector3df radius = box.MaxEdge - box.getCenter();
        //Base ellipse
    irr::f32 ellipseYOffset = (box.MaxEdge.Y + box.MinEdge.Y)*0.5f;
    irr::scene::ISceneNodeAnimator *colli_node_anim = SceneManager->createCollisionResponseAnimator(terrain_selector, node, radius, irr::core::vector3df(0,-10,0),irr::core::vector3df(0,ellipseYOffset,0));
    node->addAnimator(colli_node_anim);
    colli_node_anim->drop();


    terrain_selector->drop();
    node_selector->drop();
    meta_cam->drop();


Quelqu'un à une idée ?

RVM


Hors ligne


OptionsLiens officielsCaractéristiquesStatistiquesCommunauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1441 sujets
11339 messages
Dernier membre inscrit: Saidov17
82 invités en ligne
membre en ligne: -
RSS Feed