#0 

12-04-2012 00:02:45

RVM
Membre
Date d'inscription: 08-08-2010
Messages: 20

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


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
881 membres
1427 sujets
11117 messages
Dernier membre inscrit: Bidule
30 invités en ligne
Aucun membre connecté
RSS Feed