Pages: 1
Bonjour à tous, alors voilà je vous expose la situation :
Dans un premier temps mon programme charge une scene irrlicht puis vide son scenemanager de façon à la supprimer.
Ensuite la même scene irrlicht est recharger.
Seulement pour la même scene je n'ai pas le même nombre de noeuds avec la méthode size().
Dans le premier cas j'ai 8 noeuds, tantdis que dans le second j'ai 10 noeuds, ce qui engendre un décallage complet avec une fonction qui gère les collisions sur ces objets.
Petit bout de code pour illustrer :
core::array<scene::ISceneNode *> nodes; ... while (device->run()) { if (device->isWindowActive()) { ... smgr->clear(); camera = smgr->addCameraSceneNode(0,core::vector3df(0,0,0),core::vector3df(0,0,0)); SetCamera(camera, 1); // Suppression SceneManager smgr->loadScene("NG-map0.irr"); nodes = NULL; // Rechargement de la scène irrlicht et Réinitialisation du tableau de pointeurs smgr->getSceneNodesFromType(scene::ESNT_ANY, nodes); // Récupération des noeuds de la scène ... } }
Dernière modification par AntiLoxy (18-04-2012 16:51:37)
Hors ligne
Essaie de créer ta camera après la récupération de nodes, tu devrais avoir 9 nodes au lieu de 10. Après le code complet serait plus pratique pour trouver ton problème.
Hors ligne
Ah oui bien vu !
C'est étrange car lors du premier appel à loadScene ma caméra est créer avant l'appel getSceneNodesFromType() et je n'ai pas eu le soucis.
Enfin merci beaucoups !
Hors ligne
Pages: 1