#0 

03-08-2009 19:22:57

Kit-fisto24
Membre
Date d'inscription: 03-08-2009
Messages: 60

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


#1 

03-08-2009 19:35:47

Magun
SleekThink Producer
Lieu: Punakha
Date d'inscription: 18-11-2007
Messages: 910
Corrections: 2
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


#2 

03-08-2009 20:16:26

Kit-fisto24
Membre
Date d'inscription: 03-08-2009
Messages: 60

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


#3 

03-08-2009 23:26:58

Magun
SleekThink Producer
Lieu: Punakha
Date d'inscription: 18-11-2007
Messages: 910
Corrections: 2
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 ....

Dernière modification par Magun (03-08-2009 23:28:44)

Hors ligne


#4 

03-08-2009 23:55:57

Kit-fisto24
Membre
Date d'inscription: 03-08-2009
Messages: 60

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


#5 

04-08-2009 06:28:03

tmyke
Administrateur
Date d'inscription: 24-03-2008
Messages: 1025

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


Force et sagesse...

Hors ligne


#6 

04-08-2009 11:13:00

Kit-fisto24
Membre
Date d'inscription: 03-08-2009
Messages: 60

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


#7 

04-08-2009 11:20:07

tmyke
Administrateur
Date d'inscription: 24-03-2008
Messages: 1025

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


#8 

04-08-2009 12:11:18

Kit-fisto24
Membre
Date d'inscription: 03-08-2009
Messages: 60

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


#9 

04-08-2009 12:49:55

tmyke
Administrateur
Date d'inscription: 24-03-2008
Messages: 1025

Kit-fisto24 :

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


#10 

04-08-2009 16:02:10

Magun
SleekThink Producer
Lieu: Punakha
Date d'inscription: 18-11-2007
Messages: 910
Corrections: 2
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 ...

Dernière modification par Magun (04-08-2009 16:02:44)

Hors ligne


#11 

04-08-2009 17:18:56

Kit-fisto24
Membre
Date d'inscription: 03-08-2009
Messages: 60

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


#12 

04-08-2009 17:44:21

tmyke
Administrateur
Date d'inscription: 24-03-2008
Messages: 1025

Voilà qui est bien smile


Force et sagesse...

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
883 membres
1429 sujets
11121 messages
Dernier membre inscrit: Saidov17
46 invités en ligne
Aucun membre connecté
RSS Feed