#1 

03-08-2009 17:22:57

Kit-fisto24
Membres
Date d'inscription:
Messages: 60
IP: 83.201.241.227
Courriel

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


#2 

03-08-2009 17:35:47

Magun
Administrateurs
Avatar de Magun
Date d'inscription:
Messages: 910
IP: 188.93.45.30
Courriel  Site web

si tu veut un truc qui tient la route utilise un moteur physique tel-que ode, bullet, physix, sofa ... et j'en passe wink
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 smile

Hors ligne


#3 

03-08-2009 18:16:26

Kit-fisto24
Membres
Date d'inscription:
Messages: 60
IP: 83.201.241.227
Courriel

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


#4 

03-08-2009 21:26:58

Magun
Administrateurs
Avatar de Magun
Date d'inscription:
Messages: 910
IP: 188.93.45.30
Courriel  Site web

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 hmm
ah moins que se ne soit avec IAnimetedSceneNode ....

Hors ligne


#5 

03-08-2009 21:55:57

Kit-fisto24
Membres
Date d'inscription:
Messages: 60
IP: 83.201.241.227
Courriel

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. sad

Bon je vais donc me pencher vers les moteurs physiques.


Hors ligne


#6 

04-08-2009 04:28:03

tmyke
Administrateurs
Avatar de tmyke
Date d'inscription:
Messages: 1025
IP: 86.218.235.85
Courriel

Kit-fisto24 Ecris:

...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 Ecris:

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. wink


Force et sagesse...

Hors ligne


#7 

04-08-2009 09:13:00

Kit-fisto24
Membres
Date d'inscription:
Messages: 60
IP: 83.201.241.227
Courriel

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


#8 

04-08-2009 09:20:07

tmyke
Administrateurs
Avatar de tmyke
Date d'inscription:
Messages: 1025
IP: 86.218.235.85
Courriel

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.


Force et sagesse...

Hors ligne


#9 

04-08-2009 10:11:18

Kit-fisto24
Membres
Date d'inscription:
Messages: 60
IP: 83.201.241.227
Courriel

Toujours pas. sad

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


#10 

04-08-2009 10:49:55

tmyke
Administrateurs
Avatar de tmyke
Date d'inscription:
Messages: 1025
IP: 86.218.235.85
Courriel

Kit-fisto24 Ecris:

Toujours pas. sad

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.


Force et sagesse...

Hors ligne


#11 

04-08-2009 14:02:10

Magun
Administrateurs
Avatar de Magun
Date d'inscription:
Messages: 910
IP: 188.93.45.30
Courriel  Site web

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*' hmm
tu peut toujours essayer un cast mais j'ai peur du résultat wink

pourtant ses comme ça depuis la 1.3 il me semble ...

Hors ligne


#12 

04-08-2009 15:18:56

Kit-fisto24
Membres
Date d'inscription:
Messages: 60
IP: 83.201.241.227
Courriel

En effets cela venait du faite que ma version était trop ancienne. Merci à vous deux, je suis enfin arrivé à faire ce que je voulais! smile


Hors ligne


#13 

04-08-2009 15:44:21

tmyke
Administrateurs
Avatar de tmyke
Date d'inscription:
Messages: 1025
IP: 86.218.235.85
Courriel

Voilà qui est bien smile


Force et sagesse...

Hors ligne


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