Bonjours,
Je débute avec Irrlicht et j'essaye de tout comprendre. J'essaye de créer une collision avec un cube ( scene::ISceneNode* cube = smgr->addCubeSceneNode(500); ) avec la caméra ( scene::ICameraSceneNode *camera = smgr->addCameraSceneNodeFPS (0, 100.0f, 500.0f, 0, 0, 0, true); ), donc pour que la caméra ne passe pas à travers le Cube. Mais j'ai beau chercher je ne trouve pas comment gérer une collision avec le cube car c'est un ISceneNode et qu'il n'a pas de Mesh.
Donc je me demandais si il existait un moyen de gérer des collisions avec un cube?
Hors ligne
si tu veut un truc qui tient la route utilise un moteur physique tel-que ode, bullet, physix, sofa ... et j'en passe
sinon pour un truc simple tu a toujours la collision d'irrlicht dans les animator ... regarde la doc http://irrlicht.sourceforge.net/docu/hierarchy.html
Hors ligne
D'accord je vais chercher mais il n'existe donc pas un moyen de créer une mesh a partir d'une Scenenode (à partir du cube)?
Hors ligne
si tu n'utilise pas la svn non, car sur cette dernière il y a une class IGeometrieCeator, qui crée les formes primitives en mesh
enfin si ses possible en recuperant le mesh de ISceneNode avec getMesh() il me semble, se pendant tu est obliger de garder ton scène node
ah moins que se ne soit avec IAnimetedSceneNode ....
Dernière modification par Magun (03-08-2009 23:28:44)
Hors ligne
Non ça ne marche pas le message d'erreur est:
'irr::scene::IAnimatedMesh *irr::scene::ISceneManager::getMesh(const irr::c8 *)' : impossible de convertir le paramètre 1 de 'irr::scene::ISceneNode *' en 'const irr::c8 *'
Apparemment on ne peut pas récupérer la Mesh d'un scène node.
Bon je vais donc me pencher vers les moteurs physiques.
Hors ligne
Kit-fisto24 :
...donc pour que la caméra ne passe pas à travers le Cube. Mais j'ai beau chercher je ne trouve pas comment gérer une collision avec le cube car c'est un ISceneNode et qu'il n'a pas de Mesh.
IMesh *mesh = cube->getMesh(); tout simplement, et tu as accès à le geométrie de ton cube...
Kit-fisto24 :
D'accord je vais chercher mais il n'existe donc pas un moyen de créer une mesh a partir d'une Scenenode (à partir du cube)?
Si bien sur, l'exemple 03-CustomSceneNode du package Irrlicht devrait te fournir les éléments pour y arriver sans soucis. Ou alors je n'ai pas compris ce que tu cherches.
Hors ligne
Quand je met: IMesh *mesh = cube->getMesh(); le message d'erreur me met que getMesh ne fait pas partie de irr::scene::ISceneNode.
Je vais donc chercher dans le exemple 3, merci!
Hors ligne
Quand tu créé ton cube, ecrit ImeshSceneNode *cube = smgr->addCubeSceneNode(size);
La fonction addCubeSceneNode à la base renvoi un pointer vers un ImeshSceneNode.
Les choses iront mieux de ce fait.
Hors ligne
Toujours pas.
Quand je met ceci:
ImeshSceneNode *cube = smgr->addCubeSceneNode(1500);
IMesh *mesh = cube->getMesh();
Il me remet: impossible de convertir de 'irr::scene::ISceneNode *' en 'irr::scene::ImeshSceneNode *'.
Hors ligne
Kit-fisto24 :
Toujours pas.
Quand je met ceci:
ImeshSceneNode *cube = smgr->addCubeSceneNode(1500);
IMesh *mesh = cube->getMesh();
Il me remet: impossible de convertir de 'irr::scene::ISceneNode *' en 'irr::scene::ImeshSceneNode *'.
??? alors là, il doit y avoir un soucis, car pour ce qui est de Irrlicht 1.5, addCubeSceneNode renvoi bien un pointeur
de type ImeshSceneNode.
Hors ligne
ta pas du télécharger la bonne version, j'ai vérifier quand même mais la doc du site confirme bien se que dit tmyke 'addCubeSceneNode' renvoie bien un 'ImeshSceneNode*'
tu peut toujours essayer un cast mais j'ai peur du résultat
pourtant ses comme ça depuis la 1.3 il me semble ...
Dernière modification par Magun (04-08-2009 16:02:44)
Hors ligne
En effets cela venait du faite que ma version était trop ancienne. Merci à vous deux, je suis enfin arrivé à faire ce que je voulais!
Hors ligne
Voilà qui est bien
Hors ligne