Historique des modifications - Message

Message #10455

Sujet: Collision Terrain/Node <=> Camera avec animator = rien


Type Date Auteur Contenu
Création du message 11-04-2012 22:02:45 RVM
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

Retour

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